PHP ile Üyelik Sistemi

Ceviz Viki, özgür ansiklopedi

Git ve: kullan, ara

PHP ile MySQL veritabanı kullanarak üyelik sistemi nasıl oluşturulur?

Öncelikle halihazırda bir veritabanı tablomuz olmadığı için tablomuzu oluşturalım:

ayar.php

  1. <?php
  2. /*Buraya MySQL kullanıcı ve veri tabanı bilgilerimizi giriyoruz.
  3. Siz kendinize göre düzenleyin.. */
  4. $mysql_sunucu="localhost";
  5. $mysql_kullanici="kullanici_adi";
  6. $mysql_sifre="sifre";
  7. $mysql_vt="veri_tabanimiz";
  8.  
  9. @mysql_connect($mysql_sunucu,$mysql_kullanici,$mysql_sifre) or die("Veri tabanina baglanilamadi! Cunku: ". mysql_error());
  10. @mysql_select_db($mysql_vt) or die("Veri tabanini seçemedim");
  11. ?>

kurulum.php

  1. <?php
  2.  
  3. include "ayar.php";
  4. mysql_query("CREATE TABLE `uyeler` (
  5. `no` int(255) unsigned NOT NULL auto_increment,
  6. `kullanici` varchar(50) NOT NULL,
  7. `sifre` varchar(32) NOT NULL,
  8. `cookie` varchar(32) NOT NULL,
  9. `email` varchar(100) NOT NULL,
  10. PRIMARY KEY (`no`)
  11. )");
  12. ?>

Şimdi öncelikle kayıt olma sayfamızı hazırlayalım:

kayit.php

  1. <html>
  2. <head><title>Kayıt</title></head>
  3. <body>
  4. <?php
  5. include "ayar.php";
  6. //Herhangi bir POST datası yoksa..
  7. if (empty($_POST)){
  8. echo "<form name='kayit' action='".$PHP_SELF."' method='post'>\n";
  9. echo "Kullanıcı Adı: <input type='text' name='kullanici' id='kullanici' /><br />\n";
  10. echo "Şifre: <input type='password' name='sifre1' id='sifre1' /><br />\n";
  11. echo "Şifre(Tekrar): <input type='password' name='sifre2' id='sifre2' /><br />\n";
  12. echo "Şifre: <input type='text' name='email' id='email' /><br />\n";
  13. echo "<input type='submit' name='submit' value='Kayıt' /><br />\n";
  14. echo "</form>\n";
  15. }
  16. //Formdan gelen POST dataları varsa
  17. else {
  18. //Kötü amaçlı kodlardan kurtulalım..
  19. $_POST['kullanici']=mysql_real_escape_string($_POST['kullanici']);
  20. $_POST['sifre1']=mysql_real_escape_string($_POST['sifre1']);
  21. $_POST['sifre2']=mysql_real_escape_string($_POST['sifre2']);
  22. $_POST['email']=mysql_real_escape_string($_POST['email']);
  23.  
  24. //Girilen şifrelerin aynı olup olmadığını kontrol edelim
  25. if ($_POST['sifre1']!=$_POST['sifre2']) echo "Şifreleriniz uyuşmuyor. Lütfn tekrar deneyin.";
  26.  
  27. //E-mail adresinin geçerliliğini kontrol edelim..
  28. elseif (!eregi("^[_a-z0-9-]+(\.[a-z0-9-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+[a-z]{2}[mtgvu]?$",$_POST['nmail1']))
  29. echo "Geçerli bir e-mail adresi girmediniz. Lütfen tekrar deneyin!";
  30. else {
  31. $sifre=md5(sh1($_POST['sifre1'])); /* Şİfreyi önce sh1 sonra md5 ile güvenli hale
  32. getiriyoruz ki kötü niyetli kişiler öğrenemesin..*/
  33. $cookie=md5($_POST['kullanici']);
  34. if(mysql_query("INSERT INTO uyeler (kullanici,sifre,email,cookie) VALUES ('$_POST[kullanici]','$sifre','$_POST[email]','$cookie')")) echo "Kayıt başarılı..";
  35. else "Kayıt yapılamadı.";
  36. }
  37. }
  38. ?>
  39. </body>
  40. </html>

Kayıt işlemini de tamamladığımıza göre geriye giriş sayfasına da geçebiliriz:

giris.php

  1. <html>
  2. <head><title>Giriş</title></head>
  3. <body>
  4. <?php
  5. include "ayar.php";
  6. if (empty($_POST)){
  7. echo "<form name='login' action='".$PHP_SELF."' method='post'>\n";
  8. echo "Kullanıcı Adı:<input type='text' name='kullanici' id='kullanici' /><br />\n";
  9. echo "Şifre:<input type='password' name='sifre' id='sifre' /><br />\n";
  10. echo "<input type='submit' name='gir' value='Giriş' />\n";
  11. echo "</form>";
  12. }
  13. else{
  14. $_POST['kullanici']=mysql_real_escape_string($_POST['kullanici']);
  15. $_POST['sifre']=mysql_real_escape_string($_POST['sifre']);
  16. $sifre=md5(sh1($_POST['sifre']));
  17. $sorgu=mysql_query("SELECT sifre,kullanici,cookie FROM uyeler
  18. WHERE kullanici='$_POST[kullanici]' AND sifre='$sifre'");
  19. $kontrol=mysql_num_rows($sorgu);
  20. if ($kontrol>0){
  21. echo "Giriş başarılı.";
  22. $kullanicimiz=mysql_fetch_array($sorgu);
  23. setcookie("cookie_adi",$kullanicimiz['cookie'],time()+3600);
  24. //3600 yerine kullanıcının ne kadar süreyle hatırlanacağını saniye cinsinden girin..
  25. }
  26. else "Giriş başarısız..";
  27. }
  28. ?>
  29. </body>
  30. </html>

Evet son olarak üye girişi yapmış bir kullanıcının sadece üyelerin girebildiği bir sayfada nasıl gezebileceğini gösterelim:

icerik.php

  1. <html>
  2. <head><title>Sayfamız</title></head>
  3. <body>
  4. <?php
  5. include "ayar.php";
  6. if (empty($_COOKIE["cookie_adi"])) echo "Bu alana erişmek için üye girişi yapmalısınız!";
  7. else {
  8. $sorgu=mysql_query("SELECT * FROM uyeler WHERE cookie='$_COOKIE[cookie_adi]'");
  9. $kontrol=mysql_num_rows($sorgu);
  10. if ($kontrol>0) {
  11. $kullanicimiz=mysql_fetch_array($sorgu);
  12. echo "Hoşgeldin ".$kullanicimiz["kullanici"]."!";
  13. /* Bu alana üyelerin erişebileceği sayfanın içeriği gelecek $kullanicimiz dizi değişkeni ile giriş
  14.   yapmış olan üyenin tüm bilgilerine ulaşabiliriz */
  15. }
  16. else echo "Bu alana erişmek için üye girişi yapmalısınız!";
  17. }
  18. ?>
  19. </body>
  20. </html>

İşte bu kadar! Konuyu kısaca anlatmaya çalıştım gerisi sizin hayal gücünüze kalmış.. Gece gece yazdığım kodlarda hata yapmış olabilirim, bulduğunuz hataları düzeltebilirsiniz..

Muhittin ÖZER