23 Ekim 2016 Pazar

Üye Kayıt İşlemi - PHP ve MySQL

Üye kaydetme işlemini PHP ve MySQL kullanarak oluşturacağız. Siteye giren ziyaretçi eğer siteye kayıt olmak isterse üye kayıt sistemi ile gerekli bilgileri girerek üye kaydını yapabilecek.

Öncelikle yapılması gereken htdocs klasörü içerisinde uyelik adında bir dosya oluşturmak. Daha sonra ise kayit.php dosyasını uyelik klasöründe oluşturmak.

Oluşturulan kayit.php dosyasını kullandığınız herhangi bir editörle açın. Benim kullanacağım editör Sublime Text.

İlk önce üye kaydı formu oluşturulmalı. Kayıt olacak kullanıcının gireceği bilgiler de şu şekilde olacak:
  • Kullanıcı Adı
  • E-mail Adresi
  • Şifre
  • Şifre Doğrulama
Kullanıcı bu bilgileri girdikten sonra kayıt ol butonuna bastığında eğer girdiği bilgiler kurallara uygunsa kayıt işlemi gerçekleşecek eğer girilen bilgiler düzgün şekilde girilmediyse bilgilerin doğru girilmesi konusunda uyarı verilecek ve tekrar yapılması istenecek.

kayit.php sayfasının kodları şu an için aşağıdaki gibi.


<!DOCTYPE html>
<html>
<head>
 <title>Üye Kayıt</title>
</head>
<body>
<div class="baslik">
 <h1>Üye Kaydı</h1>
</div>

<form>
 <table>
  <tr>
   <td>Kullanıcı Adı:</td>
   <td><input type="text" name="uyeadi" class="stiltext"></td>
  </tr>
  <tr>
   <td>E-mail:</td>
   <td><input type="email" name="email" class="stiltext"></td>
  </tr>
  <tr>
   <td>Şifre:</td>
   <td><input type="password" name="sifre" class="stiltext"></td>
  </tr>
  <tr>
   <td>Şifre Doğrulama:</td>
   <td><input type="password" name="sifre2" class="stiltext"></td>
  </tr>
  <tr>
   <td></td>
   <td><input type="submit" name="kayit_btn" value="Kayıt Ol"></td>
  </tr>
 </table>
</form>

</body>
</html>

Kodun Ekran çıktısı ise şimdilik şu şekilde.

Bu görünümü elde ettiyseniz yola devam. Öncelikle bilmemiz gereken iki tane form metotu vardır. Bunlar get ve post metotlarıdır. get metotu ile kullanıcıdan alınan bilgiler url adresi kısmında görülmektedir. Ancak post metotu ile url kısmında kullanıcının girdiği bilgiler görünmez. Kayıt işlemleri gibi özel durumlarda post metotunu kullanmak gereklidir. Bu sayede bilgileri açık hale getirmiyoruz.

Kullanıcı bilgilerini post metodu ile kayit.php sayfasına action ile yollaycağız. Bunu yapmak için <form> etiketini kullanacağız. <form method="post" action="kayit.php"> olacak şekilde yazalım.



Daha sonra <!DOCTYPE html> etiketinin üstüne php etiketi açıyoruz ve session başlatıp, veri tabanı bağlantısını yapıyoruz.
<?php
 session_start();

  $vt = @new mysqli("localhost", "root", "", "uyelik");
?>



Şimdi ise veritabanı oluşturmak için localhost/phpmyadmin adresine girelim. uyelik adında bir veritabanı oluşturalım. Veritabanına uyeler adında 4 tane sütunlu bir tablo oluşturalım.

Sıra sütunları oluşturmada. İlk önce id adı tanımladı ve bu alacağı değerler int olarak belirlendi. Her üyenin diğer üyelerden farklı id numarası olacak ve bunu da AUTO_INCREMENT ile sağlıyoruz, karakter uzunluğunu ise 10 verdik. uyeadi, email ve sifre adında üç sütun daha oluşturuldu. Bu sütunların alacağı değerler sayı, harf ve özel işaretler olabileceği için VARCHAR olarak ayarlandı.Uyarı - Eğer #1075 hatası ile karşılaşırsanız tablo oluşturmada, INDEX kısmındaki PRIMARY değerini UNIQUE yapın.

Üye kayıt işlemlerinin olacağı asıl kısma geldik. Bu bölümde php kodları yazacağız. PHP kodlarını yazdığımız etiket içerisinde if karar yapısı oluşturuyoruz. Daha sonra isset() fonksiyonu ile post değişkeninin sorgulanmasını yapıyoruz. isset fonksiyonu değişkenin tanımlanıp tanımlanmadığını sorgular.


<?php
 session_start();

 $vt = @new mysqli("localhost", "root", "", "uyelik");

 if(isset($_POST['kayit_btn'])){
  
 }
?>

Önemli - kayit_btn post değişkeni içerisine yazılır. Kodları böyle yazarak anlattığımdan dolayı kod örneklerini bundan sonra parça parça göstereceğim.


if(isset($_POST['kayit_btn'])){
  session_start();
  $uyeadi = $vt->real_escape_string($_POST['uyeadi']);
  $email = $vt->real_escape_string($_POST['email']);
  $sifre = $vt->real_escape_string($_POST['sifre']);
  $sifre2 = $_POST['sifre2'];
 }

if içerisinde tekrar session başlattık. Kullanıcının girdiği üye bilgilerini oluşturduğumuz değişkenlere atandı. Şimdi dikkat ettiyseniz sifre2 değişkeni de tanımlandı. Bu değişkenin içindeki değer sadece doğrulama amaçlı kullanılacak.Eğer doğru ise kullanıcı kayıt olacak. Kullanıcının şifresi ise veritabanında md5 olarak şifrelenecek. $sql değişkeni oluşturulup sql kodları ile bu kullanıcı bilgilerini içeren değişkenler veritabanındaki değerlere atanacak. Daha sonra bu yazma işlemini gerçekleştirmek için mysqli_query() sayesinde sql ile vt arasında bağlantı kuruyoruz. Ardından session değişkeni oluşturup doğrulama  amaçlı uyarı mesajı kullanıcı karşısına çıkacak ve "Şu an içerdesin" yazısını görecek. Tekrar session değişkeni oluşturup kullanıcının üye adını bu değişkene atıyoruz. Daha sonrasında ise header() fonksiyonu ile başka sayfaya yönlendirme yapıyoruz.

Eğer şifre karşılaştırma yanlış çıkarsa else içerisindeki kodlar çalışacak ve uyarı verecek.


if(isset($_POST['kayit_btn'])){
 session_start();
  $uyeadi = $vt->real_escape_string($_POST['uyeadi']);
  $email = $vt->real_escape_string($_POST['email']);
  $sifre = $vt->real_escape_string($_POST['sifre']);
  $sifre2 = $_POST['sifre2'];

  if($sifre == $sifre2){
   $sifre = md5($sifre);
   $sql = $vt->query("INSERT INTO uyeler(uyeadi,email,sifre) VALUES('$uyeadi','$email','$sifre')");
   $_SESSION['uyari'] = "Şu an içerdesin";
   $_SESSION['uyeadi']= $uyeadi;
   header("location: index.php");
  }else{
   $_SESSION['uyari'] = "Girilen İki Şifre Uyuşmamaktadır.";
  }
 }

 }

Şimdi ise biraz görünüme önem verelim. Bir tane style.css adlı dosya oluşturup bunu kayit.php dosyama dahil ediyorum. Oluşturuduğumuz bu dosyanın uyelik klasörü içinde olmasına dikkat edin. Ardından style.css dosyasına aşağıdaki kodları yazıyorum.


body{
 padding: 0;
 margin:0;
}
.baslik{
 background:#bad7f2;
 color:#333;
 text-align: center;
 top:0;
 width:100%;
 padding: 7px;
}
form{
 width: 45%;
 padding: 30px;
 border: 1px solid #ccc;
 margin: 5px auto;
}
.stiltext{
 margin-top:2px;
 height: 28px;
 border: 1px solid #666;
 font-size: 16px;
 padding: 1px;
 width: 100%;
}
#hatamesaji{
 width: 50%
 margin: 5px auto;
 height: 30px;
 border: 1px solid #ff0000;
 background: #ffb9b8;
 color: #ff0000;
 text-align: center;
 padding-top: 10px;
}
td{
 text-align:right;
}


style.css dosyasını dahil etmek için kayit.php kodları içerisinde ... etiketleri içerisine eklemelisiniz.


<link rel="stylesheet" type="text/css" href="style.css">

Üye kayıt formunun görünümüne bakalım.













Dikkat ettiyseniz header() fonksiyonu ile indx.php sayfasına yönlendirme yaptık. uyelik dosyası içerisine index.php dosyası açıp aşağıdaki kodları ekliyorum.


<!DOCTYPE html>
<html>
<head>
 <title>PHP Üyelik Sistemi</title>
 <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div class="baslik">
 <h1>Ana Sayfa</h1>
</div>

<div>
<h4>Hoş geldin <?php echo $_SESSION['uyeadi'];?></h4>
</div>

</body>
</html>


Şimdi ilk kayıt işlemini yapalım. Kayıt başarılı olursa index.php sayfasına yönlenecek ve Hoş geldin phpbil diyecek.



Üye kayıt ile ilgili kısmı burada bitirmiş olduk. Diğer yazıda Üye girişi ve üye çıkış işlemi anlatılacaktır. Herhangi bir sorunda aşağıdan yorum atarak berlirtirseniz yardımcı olabilirim.

3 yorum:

  1. hocam kayit.php de hata veriyor real_escape_string($_POST['uyeadi']);
    $email = $vt->real_escape_string($_POST['email']);
    $sifre = $vt->real_escape_string($_POST['sifre']);
    $sifre2 = $_POST['sifre2'];

    if($sifre == $sifre2){
    $sifre = md5($sifre);
    $sql = $vt->query("INSERT INTO uyeler(uyeadi,email,sifre) VALUES('$uyeadi','$email','$sifre')");
    $_SESSION['uyari'] = "Şu an içerdesin";
    $_SESSION['uyeadi']= $uyeadi;
    header("location: index.php");
    }else{
    $_SESSION['uyari'] = "Girilen İki Şifre Uyuşmamaktadır.";
    }
    }


    ?>
    bu kısımda süslü parantez vardı en altta silmek zorunda kaldım yoksa sayfa http500 hatası veriyordu fakat şimdi de göndere tıklayınca indexe gitmiyor

    YanıtlaSil
  2. hocam bende hazır tasarım var ona nasıl eklerim sistemi

    YanıtlaSil
  3. php kodlarını eklediğinde "Bu sayfa çalışmıyor" hatası veriyor.

    YanıtlaSil