Php ile Oturum Yönetimi
Üyelik sistemlerinin temelini oturum yönetimi oluşturur. İlk olarak sql adında veritabanımızı oluştururuz. veritabanımızı oluşturduktan sonra 3 sütunlu uyeler isimli tablomuzu oluşturuyoruz. Bunun için aşağıdaki sql sorguyu kullanıyoruz.
1 2 3 4 5 6 7 8 9 10 |
CREATE TABLE `uyeler` ( `uyeno` SMALLINT( 6 ) NOT NULL AUTO_INCREMENT , `uyead` VARCHAR( 20 ) NOT NULL , `uyesifre` VARCHAR( 50 ) NOT NULL , PRIMARY KEY ( `uyeno` ) ) TYPE = MYISAM ; INSERT INTO `uyeler` ( `uyeno` , `uyead` , `uyesifre` ) VALUES ( '', 'deneme', '8cb2237d0679ca88db6464eac60da96345513964' ); |
Üyemizin adı “deneme” şifresi ise “12345” tir. Üyemizin adını kodumuzda deneme olarak görüyoruz. Fakat şifremizi karışık rakamlar ve harfler şeklinde görüyoruz. Bu güvenliğimiz için alınmış bir önlemdir. Veri tabanına bizim iznimiz olmadan bir erişim olursa üyelerimizin şifreleri elde edilemez.
İlk olarak index.php sayfamızı oluşturalım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php session_start(); // oturumu başlatıyoruz if(!isset($_SESSION['uye'])) { // eğer üye giriş yapmamış ise /* html komutlarını rahat bir şekilde yazmak için php etiketini kapatıyoruz. */ // sayfanın içeriğini görmek için buradaki girişleri yapmalıdır. ?> Bu sayfanın içeriğini görebilmek için üye girişi yapmalısınız. <form action="giris.php" method="post"> <input type="text" size="20" name="uyead" id="uyead" /><br /> <input type="password" size="20" name="sifre" id="sifre" /><br /> <input type="submit" id="giris" value="Giriş Yap" /> </form> <?php exit(); } else { /* üye giriş yapmışsa hoşgeldin diyelim */ echo "Hoşgeldiniz Değerli Üyemiz " . $_SESSION['uye'] . ""; /*çıkış yapmak için tıklayınız*/ echo 'Çıkış Yapmak İçin <a href="cikis.php">Tıklayın</a><br/>'; //cikis.php ye yönlendiriliyorsunuz } ?> |
Bu sayfa içeriği olarak ziyaretçimiz üye girişi yapmış ise hoş geldin diyoruz. Üye girişi yapmamış ise üye girişi yapması gerektiğini belirterek giriş yapması için üye giriş formumuzu gösteriyoruz.
Kodlarda yaptığımız açıklamalardan da yola çıkarak ilk olarak session_start(); ile oturum başlatıyoruz. Eğer mevcut bir oturum varsa oturumun devam etmesini sağlıyoruz. Sonra isset() fonksiyonu ile oturum değişkenimizi kontrol ediyoruz. Oturum yoksa üye giriş formu, varsa hoşgeldiniz diyerek oturumu başlatıyoruz.
Sırada giris.php sayfamızı oluşturmaya geldi. giris.php sayfamızı oluşturalım:<>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<? session_start(); //oturum başlatılıyor mysql_connect("localhost","root","") or die("mysqle bağlanılamıyor"); //root adlı kullanıcı yok ise mysqle bağlanamıyorsunuz mysql_select_db("sql") or die("veritabanı seçilemiyor"); //veri tabanınızda böle bir veritabanı oluşturulmadığından veritabanı seçilemiyor $uyead = strip_tags(mysql_real_escape_string($_POST['uyead'])); //üye adını kötü huylu kişilerden korumak için alınmış bir önlemdir(-->,",' bu tür saldırıları engellemek için) $sifre = strip_tags(mysql_real_escape_string($_POST['sifre']));// şifreyi kötü huylu kişilerden korumak için alınmış bir önlemdir(<,>,",' bu tür saldırıları engellemek için) if($sifre == "" || $uyead == "") { echo "Lütfen Tüm Alanları Doldurun"; // eğer üye adı ve şifre boş işe boş alanları doldurunuz } else { $sifre = sha1($sifre); //şifreyi şifreliyor $sql = mysql_query("select uyead from uyeler where uyead='$uyead' and uyesifre='$sifre'"); //girilen üye adı ve şifre ile veritabanındaki ad ile şifre eşleştiriliyor $uyevarmi = mysql_num_rows($sql); // böyle bir üye varmı sorgusu yapılıyor if($uyevarmi == 0) { //eğer eşleşmiyorsa böyle bir üye yok ise echo "üyelik bilgileri bulunamadı, tekrar deneyin"; //üyelik bilgileri bulunamadı tekrar deneyin } else { //eşleşiyorsa $uyebilgi = mysql_fetch_assoc($sql); // veri tabanındaki bilgiler çözülür $_SESSION['uye'] = $uyebilgi['uyead']; //oturum başlatılır echo "admin sayfasına yönlendiriliyorsunuz"; echo "<script>location.href='admin.php';</script>"; // admin.php sayfasına yönlendiriliyorsunuz } // if($uyevarmi == 0) kontrolü bitişi } // if($sifre == "" || $uyead == "") kontrolü bitişi ?> |
giris.php sayfamızda ilk olarak oturumun devam etmesi için session_start() kullanıyoruz. Daha sonra mysql bağlantımızı yaparak veritabanımızı seçiyoruz. Form alanından gelen değişkenleri strip_tags() ve mysql_real_escape_string() fonksiyonlarını kullanıyoruz. Strip_tags() fonksiyonu etiketlerini temizlemek için kullanılır. mysql_real_escape_string() ise mysql için zararlı olabilecek kodları filtreler. Güvenlik önlemlerinden sonra uyead ve sifre kontrollerini yaparız. Eksik alan varsa uyarı verir. Şifremiz veritabanında sha1() ile şifrelenmiş halde kayıtlı olduğundan şifremizi yine sha1() çevirmek zorundayız. Yoksa kullanıcı doğru şifre girse bile şifreler birbirinden farklı olacağından yanlış şifre girdi olarak kabul edilir. Şifremizi sha1’e çevirdikten sonra mysql sorgumuzu oluşturduk.
Daha sonra yeni bir sayfa oluşturarak admin.php olarak kaydederiz.içerik olarak:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<? include("index.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>"> <html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> <title>Untitled Document</title> </head> <body> BURASI ADMİN SAYFASI </body> </html> |
Son adım olarak üyemizin çıkış yapabilmesi için cikis.php sayfamıza ihtiyacımız var.
1 2 3 4 5 6 |
<?php session_start(); unset($_SESSION['uye']); // oturumda olan değişkenimiz siliniyor session_destroy(); // oturumları siler echo "<script>location.href='index.php';</script>"; // index.php sayfasına yönlendiriliyorsunuz ?> |
Böylelikle basit bir üyelik sistemi oluşturmuş olduk. Yardım almak için forumlarımızdan yararlanabilirsiniz. Kolay gelsin.