php ile üyelik sistemi yapmak

Veritabanında oluşturmamız gereken tablo;

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 */;

Peki ne yaptık?

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

Veritabanı bağlantısı için kodlarımız:

vtbaglan.php

<?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";
$vt_adi        = "ornekler";
 
//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ı!");
?>

Peki 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.

Üye Girişi yapmak için kodlarımız:

index.php

<?php
//Oturumumuzu başlatıyoruz
session_start();
//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
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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 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;
}
?>

Peki 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.

Üye Kayıtı yapmak için kodlarımız ? kayit.php

<?php
//Veritabanı bağlantı dosyamızı çekiyoruz
require_once("vtbaglan.php");
 
$adim = $_GET['adim'];
switch($adim){
case "":
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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 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;
}
?>

Peki 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.

Üye Profil sayfası yapmak için kodlarımız:

profil.php

<?php
//Oturumumuzu başlatıyoruz
session_start();
//Veritabanı bağlantı dosyamızı çekiyoruz
require_once("vtbaglan.php");
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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 href="cikis.php">tıklayın.</a>';
}else{
    echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
?>
</body>
</html>

Peki 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 anasayfaya yani üye giriş formuna yönlendiriyoruz. Daha sonra giriş yaparken atadığımız sessionlar sayesinde kullanıcı bilgierini çekip ekrana yazdırıyoruz. Ayrıca sayfamıza bir çıkış linki ekleyiyoruz.

Çıkış sayfası yapmak için kodlarımız:

cikis.php

<?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
?>

Peki 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.

Kolay gelsin.

 

Yorum Yazın

Email adresiniz yayınlanmayacak.