Kaynak
Bu konudan ayrılmadan önce basit bir örneklede kullanıcı girişi olayını göstermek istiyorum. Veritabanı ve fazla detaya girmeden session ve form kullanarak bir kullanıcı girişi olayı yapalım.
Yukarıdaki giris.php örneğindeki formu kullanalım. O form bize kullanici ve sifre adında iki veri gönderilmesini sağlıyordu. Bunun yanında biz bir kontrol ve bir de panel sayfası yapacağız.
Kontrol sayfasında gönderilen kullanıcı adı ve şifrenin bizde kayıtlı kullanıcı adı ve şifre ile aynı olup olmadığına bakacağız, eğer bizdekiler ile aynı ise bu değerleri session ile kaydedeceğiz sonrasında panel.php‘ye gönderip giren kişinin giriş yapıp yapmadığını kontrol edip ona göre kullanıcıya özel olan sayfayı göstereceğiz.
kontrol.php:
if(isset($_POST[‘kullanici’]) && isset($_POST[‘sifre’])) { // form gönderilmiş mi
$kullanici = $_POST[‘kullanici’];
$sifre = $_POST[‘sifre’];
if(empty($kullanici) || empty($sifre)) { // gönderilenler boş mu
echo ‘Lütfen boş bırakmayın’;
} else {
if($kullanici == ‘musa’ && $sifre == ‘123456’) { // bilgiler doğru mu
session_start();
$_SESSION[‘kullanici’] = ‘musa’;
$_SESSION[‘sifre’] = ‘123456’;
echo ‘Giriş yaptınız! Şimdi panel.php ye girebilirsiniz.’;
} else {
echo ‘Yanlış kullanıcı adı ya da şifre’;
}
}
} else {
echo ‘Lütfen formu kullanın’;
}
?>
Burada bir önceki örnekteki form kontrol etme ifadelerinden sonra ekstra olarak bir gönderilenlerin tam olarak ne olduğunu da kontrol eden bir ifade ekledik. Eğer değerler boş değilse ve istediğimiz değerlere eşit ise session başlatıp kullanici ve sifre adında iki adet session oluşturduk. Bu oluşturduğumuz session değerlerinin içerisine yine şifremizi kaydettik. Bu bilgiler browser kapatılana kadar silinmeyeceği için bu süreç içinde kullanıcı oturum yapmış şekilde gözükecek ve panel.php’ye girdiğinde ona kullanıcı içeriğini gösterecektir.
panel.php:
session_start(); // session kullanımı başlattık
if(isset($_SESSION[‘kullanici’]) && isset($_SESSION[‘sifre’])) { // bu sefer sessionlar tanımlanmış mı diye bakıyoruz
if($_SESSION[‘kullanici’] == ‘musa’ && $_SESSION[‘sifre’] == ‘123456’) {
echo ‘Panele hoşgeldiniz! Bu yazıyı sadece giriş yapmış kişiler görebilir.’;
} else {
session_destroy(); // bilgileri yanlış olduğu için sessionlar silinir
echo ‘Bilgileriniz yanlış, buraya yanlızca giriş yapmış kişiler girebilir’;
}
} else {
echo ‘Sadece giriş yapmış kişiler görebilir’;
}
?>
Burada ise kontrol.php de gönderilen POST verilerini kontrol ettiğimiz gibi SESSION verilerini kontrol ettik. Sadece 1 kere giris.php üzerinden giriş yaptıktan sonra bir oturum boyunca panel.php sayfasında oturum açmış bir şekilde durabiliriz.
kaynak: http://ibrahimakcali.org/