Şimdi Ara

Yeni başlayanlar için PHP - Üyelik oluşturma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
4.271
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Php'ye yeni başladım. Ufak ufak yol alıyorum. Yeni şeyler öğrendikçe diğer arkadaşların da faydalanabileceği dökümanları paylaşmak istedim. İsteyen arkadaşlara kendi hazırladığım resimli pdf dosya gönderebilirim.
    Kolay gelsin...

    PHP’DE ÜYELİK SİSTEMİ OLUŞTURMA

    1-) Veritabanı oluşturma:
    İlk olarak üzerinde çalışacağımız veritabanını yaratmamız gerekmektedir. Phpmyadmin üzerinde “ornekler” adında veritabanı oluşturulur.


    2-) Kullanıcılar tablosu oluşturma:
    “Ornekler” adında veritabanı oluşturulduktan sonra, phpmyadmin sayfası üzerinde veritabanları listesinden “ornekler” veritabanı seçilir. Kullanıcıların kaydedileceği tabloyu oluşturabilmek için üst kısımdan SQL sekmesinden SQL kodu yazılan sayfaya girilir. Ve buradaki alana aşağıdaki kodlar girilerek onaylanır.

    quote:

    CREATE TABLE IF NOT EXISTS `uyeler` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `kulladi` varchar(30) NOT NULL,
    `kullsifre` varchar(30) NOT NULL,
    `mail` varchar(30) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    Aşağıdaki hata uyarısını alırsanız dikkate almayınız:
    quote:

    Hata
    SQL sorgusu:
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

    MySQL çıktısı:
    #1231 - Variable 'character_set_client' can't be set to the value of 'NULL'


    quote:

    Not: SQL kodlarının ornekler veritabanı üzerinde çalıştırıldığıbndan emin olun. Aksi takdirde veritabanı seçilmedi şeklinde uyarı alacaksınız.
    Not: Tabloyu “Tablo oluştur” butonunu kullanarak da oluşturabilirsiniz.



    Tablo oluşturulduktan sonra “ornekler” veritabanı altında oluşturduğunuz tabloyu göreceksiniz. Üzerine tıklayınca tabloda yer alan alan adlarını ve özelliklerini görebilirsiniz.

    Ne yaptık?
    Veritabanımıza uyeler isimli bir tablo oluşturup kulladi, kullsifre ve mail isimli satırlar ekledik.

    3-) Veritabanı bağlantısı oluşturma:
    PHP kodlarını çalıştırdığımız zaman hangi veritabanı üzerinde çalışacağını anlayabilmesi için veritabanı ile bağlantı kurmak gerekmektedir. Her php sayfasında bu kodları yazmak gerekir. Aşağıdaki kodları vtbaglan.php adıyla kaydediniz.
    quote:

    <?php
    ##################################################
    # Veritabanı Ayarları
    #
    # $vt_host = Veritabanı Hostu
    # $vt_kullanici = Veritabanı Kullanıcı Adı
    # $vt_sifre = Veritabanı Şifresi
    # $vt_adi = Veritabanı Adı
    #
    ##################################################

    $vt_host = "localhost";
    $vt_kullanici = "root";
    $vt_sifre = "123456"; //Şifre belirlemediyseniz “” olarak bırakınız
    $vt_adi = "ornekler"; //Oluşturduğumuz “ornekler” veritabanı

    //Veritabanı bağlantısını yapıyoruz
    $vtbaglan = @mysql_connect($vt_host,$vt_kullanici,$vt_sifre) or die("Veritabanı bağlantısı sağlanamadı!");
    mysql_select_db($vt_adi,$vtbaglan) or die("Veritabanı bulunamadı!");
    ?>


    Ne yaptık?
    Bir veritabanı bağlantı dosyası oluşturduk. Oluşturduğumuz bu veritabanı dosyası ile her sayfada mysql bağlantısı kurmamızı ve uyeler isimli tablodan kullanıcı bilgilerine erişmemizi sağlayacak. $vt_host, $vt_kullanici, $vt_sifre, $vt_adi isminde 4 değişken oluşturduk bu değişkenlerimize veritabanı bilgilerimizi yazıp mysql_connect() fonksiyonu ile veritabanı bağlantısını kurduk ve mysql_select_db() fonksiyonu ile mysql bilgileri ile veritabanımızı bağdaştırıp veritabanımıza erişimi sağladık.


    4-) Üye giriş sayfası oluşturma:


    Aşağıdaki kodları index.php adıyla kaydediniz.

    quote:

    <?php
    //Parse error göstermemek için koyuyoruz, aksi durumda undefined index hatası verir
    $ebits = ini_get('error_reporting');
    error_reporting($ebits ^ E_NOTICE);
    //Oturumumuzu başlatıyoruz
    session_start();
    //Daha önce oluşturduğumuz Veritabanı bağlantı dosyamızı çekiyoruz
    require_once("vtbaglan.php");
    //Bir string değişken oluşturduk
    $adim = $_GET['adim'];
    switch($adim){
    case "": //Atadığımız string değişkenimize hiçbir değer atanmamış ise giriş formunu gösteriyoruz
    if($_SESSION['rutbe'] != 5){ //Giriş yapan kullanıcıya atadığımız rütbe eğer doğru değilse giriş panelini tekrar gösteriyoruz
    ?>
    //////////////////////////////////////////////////////////////////////////
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title>Üye Girişi</title>
    </head>
    <body>
    <form action="index.php?adim=girisonay" method="post">
    <table width="400" border="0">
    <tr>
    <td width="115">Kullanıcı Adı</td>
    <td width="269"><input name="grs_kulladi" type="text" /></td>
    </tr>
    <tr>
    <td>Şifreniz</td>
    <td><input name="grs_sifre" type="password" /></td>
    </tr>
    <tr>
    <td> </td>
    <td><input type="submit" value="Giriş Yap" /></td>
    </tr>
    </table>
    </form>
    <br />Kayıt olmak için <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=57633465&url=kayit.php" data-href="kayit.php">tıklayınız</a>
    </body>
    </html>

    <?php
    }else{ //Giriş yapan kullanıcıya atadığımız rütbe doğruysa profil sayfasına yönlendiriyoruz
    echo '<meta http-equiv="refresh" content="0;URL=profil.php">';
    }
    break;
    case "girisonay":
    //Giriş formundan metin kutusu verilerini çekiyoruz
    $giris_adi = $_POST['grs_kulladi'];
    $giris_sifre = $_POST['grs_sifre'];
    if(($giris_adi == "") or ($giris_sifre == "")){ //Eğer kullanıcı adı ve şifre alanı boş bırakılırsa bir hata mesajı verdiriyoruz
    echo '<script type="text/javascript">alert("Boş bıraktığınız alanlar var!");</script>';
    echo '<meta http-equiv="refresh" content="0;URL=index.php">';
    }else{ //Eğer kullanıcı adı ve şifre alanı boş değilse kullanıcı bilgilerini veritabanındaki bilgiler ile karşılarştırıyoruz
    $uyeler = mysql_query("SELECT * FROM uyeler WHERE kulladi='$giris_adi' and kullsifre='$giris_sifre'"); //Veritabanındaki uyeler tablosundaki verilerimizi metin kutusu verileri ile eşleştiriyoruz
    $uyebul = mysql_num_rows($uyeler); //Üyeleri sayı olarak tanımlıyoruz
    if($uyebul > 0){ //Eğer üye varsa aşağıdaki kodları çalıştırıyoruz
    $mailcek = mysql_query("SELECT * FROM uyeler WHERE kulladi='$giris_adi'"); //Giriş doğrulanırsa giriş yapan kişinin kullanıcı adı ile mail adresini eşleştiriyoruz
    $mailcek2 = mysql_fetch_array($mailcek); //Giriş yapan kişinin kullanıcı adı ve mail adresi eşleşen mail adresini yeni bir değişkene atıyoruz
    $_SESSION['kulladi'] = $giris_adi; //Giriş doğrulanırsa metin kutusundaki kullanıcı adını kulladi isimli SESSION'a atıyoruz
    $_SESSION['email'] = $mailcek2['mail']; //Giriş doğrulanırsa profil sayfası için giriş yapan kişinin kullanıcı adı ile eşleşen mail adresini email isimli SESSION'a atıyoruz
    $_SESSION['rutbe'] = 5; //Giriş doğrulanırsa rutbe isimli bir SESSION oluşturup istediğimiz bir değer atıyoruz
    echo '<script type="text/javascript">alert("Başarıyla giriş yaptınız! Profil sayfanıza yönlendirileceksiniz...");</script>';
    echo '<meta http-equiv="refresh" content="0;URL=profil.php">';
    }else{ //Eğer kullanıcı adı veya şifre yanlışsa veya yoksa hata mesajı verdiriyoruz
    echo '<script type="text/javascript">alert("Kullanıcı adı veya şifreniz yanlış!");</script>';
    echo '<meta http-equiv="refresh" content="0;URL=index.php">';
    }
    }
    break;
    }
    ?>


    Ne yaptık?
    Bir string değişken oluşturduk ?adim? isminde ve bu string değişkenimiz ile tek sayfada üye giriş formu ve giriş onay kodlamasını gerçekleştirdik. Üye Girişi formundan gelen metin kutusu verilerini çekip içeriği boş ise hata mesajı verdiriyoruz ve eğer boş değilse kullanıcının bilgilerini veritabanındaki bilgiler ile karşılaştırıyoruz. Eğer kullanıcı adı ve şifre veritabanındaki ile eşleşiyorsa kullanıcı adını ve şifreyi bir SESSION?a atadık. Sonra rutbe isminde bir SESSION oluşturup istediğimiz değeri atıyoruz ve profil.php sayfasına yönlendiriyoruz. Eğer kullanıcı adı ve şifre veritabanındaki ile eşleşmiyorsa hata mesajı verdiriyoruz.



    5-) Üye kaydı oluşturma:
    Yeni üye kayıt sayfası oluşturmak için aşağıdaki kodları kayit.php adıyla kaydedin.

    quote:

    <?php
    //Parse error göstermemek için koyuyoruz, aksi durumda undefined index hatası verir
    $ebits = ini_get('error_reporting');
    error_reporting($ebits ^ E_NOTICE);
    //Veritabanı bağlantı dosyamızı çekiyoruz
    require_once("vtbaglan.php");
    $adim = $_GET['adim'];
    switch($adim){
    case "":
    ?>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title>Üye Kayıt Formu</title>
    </head>
    <body>
    <form action="kayit.php?adim=kayitonay" method="post">
    <table width="400" border="0">
    <tr>
    <td width="115">Kullanıcı Adı</td>
    <td width="269"><input name="kyt_kulladi" type="text" /> <font color="#FF0000">*</font></td>
    </tr>
    <tr>
    <td>Şifreniz</td>
    <td><input name="kyt_sifre" type="password" /> <font color="#FF0000">*</font></td>
    </tr>
    <tr>
    <td>Şifreniz(Tekrar)</td>
    <td><input name="kyt_sifretekrar" type="password" /> <font color="#FF0000">*</font></td>
    </tr>
    <tr>
    <td>E-Mail</td>
    <td><input name="kyt_email" type="text" /></td>
    </tr>
    <tr>
    <td> </td>
    <td><input type="submit" value="Kayıt Ol" /></td>
    </tr>
    </table>
    </form>
    <br />Giriş yapmak için <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=57633465&url=index.php" data-href="index.php">tıklayınız</a>
    </body>
    </html>

    <?php
    break;

    case "kayitonay":
    //Kayıt formundan metin kutusu verilerini çekiyoruz
    $kullanici_adi = $_POST['kyt_kulladi'];
    $kullanici_sifre = $_POST['kyt_sifre'];
    $kullanici_sifretekrar = $_POST['kyt_sifretekrar'];
    $kullanici_email = $_POST['kyt_email'];

    if(($kullanici_adi == "") and ($kullanici_sifre == "") and ($kullanici_sifretekrar == "")){ //Eğer kullanıcı adı, şifresi ve şifre(tekrar) alanı boş ise hata mesajı verdiriyoruz
    echo '<script type="text/javascript">alert("Boş bıraktığınız alanlar var!");</script>';
    echo '<meta http-equiv="refresh" content="0;URL=kayit.php">';
    }elseif($kullanici_sifre != $kullanici_sifretekrar){ //Eğer kullanıcı şifresi ve şifre(tekrar) eşleşmiyorsa hata mesajı verdiriyoruz
    echo '<script type="text/javascript">alert("Şifreleriniz birbiriyle uyuşmuyor!");</script>';
    echo '<meta http-equiv="refresh" content="0;URL=kayit.php">';
    }else{ //Eğer boş bırakılan bir alan yoksa, şifre ve şifre(tekrar) eşleşiyorsa kullanıcı kayıt işlemini gerçekleştiriyoruz
    $kullanici_kaydet = mysql_query("INSERT INTO uyeler (kulladi,kullsifre,mail) VALUES ('$kullanici_adi','$kullanici_sifre','$kullanici_email')"); //Kullanıcıyı veritabanına kaydedicek mysql kodu
    echo '<script type="text/javascript">alert("Kayıt işleminiz başarıyla gerçekleşti!");</script>';
    echo '<meta http-equiv="refresh" content="0;URL=kayit.php">';
    }
    break;
    }
    ?>


    Ne yaptık?
    Bir string değişken oluşturduk "adim" isminde ve bu string değişkenimiz ile tek sayfada üye kayıt formu ve kayıt onay kodlamasını gerçekleştirdik. Üye Kayıt formundan gelen metin kutusu verilerini çekip içeriği boş ise, girilen şifre ve şifre(tekrar) alanı birbiriyle eşleşmiyorsa hata mesajı verdiriyoruz ve eğer boş değilse veritabanına yeni kullanıcı kaydını gerçekleştiriyoruz. Yıldızlı(*) yani zorunlu doldurulması gereken alanları if döngüsü kullanıp == operatörü ile boş ise şartı vererek oluşturabilirsiniz.

    6-) Profil sayfası oluşturma:

    Üye profil sayfasını oluşturabilmek için aşağıdaki kodları profil.php adıyla kaydedin.

    quote:

    <?php
    //Oturumumuzu başlatıyoruz
    session_start();
    //Veritabanı bağlantı dosyamızı çekiyoruz
    require_once("vtbaglan.php");
    ?>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title>Üye Profili</title>
    </head>

    <body>
    <?php
    if($_SESSION['rutbe'] == 5){
    echo '<h3>Burası <font color="red">'.$_SESSION['kulladi'].'</font> isimli kullanıcının profilidir.</h3>';
    echo '<b>Kullanıcı Adınız:</b> '.$_SESSION['kulladi'].'<br />';
    echo '<b/>E-Mail Adresiniz:</b> '.$_SESSION['email'].'<br /><br />';
    echo 'Çıkış yapmak için <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=57633465&url=cikis.php" data-href="cikis.php">tıklayın.</a>';
    }else{
    echo '<meta http-equiv="refresh" content="0;URL=index.php">';
    }
    ?>
    </body>
    </html>


    Ne yaptık?
    Öncelikle sayfamızda session_start() fonksiyonu ile oturumumuzu başlattık ve giriş yaparken kullanıcıya atadığımız rutbe isminde session’un değeri belirtilen şekilde doğru ise profil sayfamızı gösteriyoruz, doğru değilse ana sayfaya yani üye giriş formuna yönlendiriyoruz. Daha sonra giriş yaparken atadığımız session’lar sayesinde kullanıcı bilgilerini çekip ekrana yazdırıyoruz. Ayrıca sayfamıza bir çıkış linki ekliyoruz. Çıkış yapılmadan üye giriş sayfası veya index.php ana sayfası açılırsa önceden giriş yapıldığı için profil sayfasına yönlendirilmektedir.

    7-) Profil sayfasından çıkış:

    Üye girişi yapılmış sayfadan çıkmak için aşağıdaki kodları cikis.php adıyla kaydedin.

    quote:

    <?php
    ob_start(); //Sayfanın daha hızlı yüklenmesine yardımcı olur
    session_start(); //Oturumumuzu başlatıyoruz
    session_destroy(); //Oturumumuzu sonlandırıyoruz
    echo '<meta http-equiv="refresh" content="0;URL=index.php">'; //Anasayfa yani giriş formu sayfasına yönlendiriyoruz
    ob_end_flush(); //ob_start() fonksiyonu temizliyoruz
    ?>


    Ne yaptık?
    ob_start() fonksiyonu ile sayfamızın daha hızlı yüklenmesini sağladık ve ob_end_flush() fonksiyonu ilede temizledik. session_start() fonksiyonu ile oturumumuzu başlatıyoruz ve session_destroy() fonksiyonumuzla oturumumuzu sonlandırıp anasayfaya yani üye giriş formuna yönlendiriyoruz.

    Php’de Üyelik oluşturma işlemi tamamlanmıştır.
    (Yararlanılan Kaynaklar: sanalkurs.net)



    < Bu mesaj bu kişi tarafından değiştirildi ferhat1981 -- 12 Şubat 2012; 0:33:59 >







  • ob_start konusunda biraz eksik kalmışsın sanırım :))

    ob_start() Fonksiyonunu buradan daha iyi öğren
  • dostum ben yeni başladım bu işe...Bir eğitmen gibi anlatmadım dikkat ettiysen altta kaynak gösterdim...Henüz o kadar da uzman değilim.
    Velhasıl ben bilgileri bir araya getirip derledim... :)
    daha çok öğreneceklerim var...
  • takip
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.