Öneri ve Hata Raporu



Günün Sözü Asla yalnız yürümeyeceksin

kategori PHP
oylama 3/5 yorum 2 yorum yazar Hakan Taşan tarih 01 Temmuz 2015

Session (oturum) kullanarak kullanıcının siteyi gezerken yaptığı aktiviteleri kontrol etmek mümkündür. Çalışma prensibi kısaca şöyledir; bir siteyi ziyaret ettiğinizde, server (sunucu) tarafından tarayıcınıza bir session ID değeri gönderilir (session ID değerleri her kullanıcıya özgüdür). Tarayıcınız bu session ID değerini bilgisayardaki cookie'lerde (çerezlerde) aramaya başlar. Siteyi ilk defa ziyaret ettiğiniz için böyle bir değer bulamaz ve bu session ID değerini hemen o siteye ait çerezlere kaydeder. Aynı zamanda sunucu tarafında da session bilgileriniz (session ID'niz, IP adresiniz, son giriş zamanınız, kullanıcı adınız vb.) kaydolunur. Bundan sonra site üzerinde yapılan bütün gezinmelerde bu session ID üzerinden veri gönderimi gerçekleştirilir. Sayfalar arası geçişlerde eğer tarayıcı çerezlerde session ID değerini bulursa, sunucu tarafından tanınmış olursunuz ve sunucu tarafındaki bilgileriniz güncellenir (ayar yapılmışsa session ID'de yenilenebilir). Eğer tarayıcı çerezlerde session ID değerini bulamazsa (çerezleri silme, çerezlerin zaman aşımına uğraması vb. gibi nedenlerle) yeni bir session ID değeri çerezlere kaydedilir. Böylelikle döngü devam eder. Daha detaylı bilgileri bu yazıda okuyabilirsiniz.

Session Oluşturma ve Veri Ekleme

Session ile veri ekleme işlemlerini yapmadan önce kesinlikle session (oturum) başlatmalıyız. Bu oturumu session_start() fonksiyonu ile yapacağız. session_start() fonksiyonu W3 kurallarına göre sayfanın en başına html etiketlerinden önce yazılmalıdır. session_start() fonksiyonu, session ID değerinin tanımlanıp tanımlanmadığını kontrol eder. Eğer tanımlı session ID değeri yoksa bize ait yeni session ID değerini oluşturur. Eğer tanımlı session ID değeri varsa bunun üzerinden işlemler yapılmaya devam eder.

Session'a veri eklemek için $_SESSION global dizisini kullanacağız.

<?php
    // Session başlatır
    session_start();
?>

<!DOCTYPE html>
<html>
<body>

<?php
    // Session'a veri ekleme
    $_SESSION["kullanici_adi"] = "x";
    $_SESSION["sepet"] = "laptop";
?>

</body>
</html>

 

Session Verilerine Ulaşma

Session verilerine ulaşmak için yine $_SESSION global dizisini kullanacağız.

<?php
    // Session başlatır
    session_start();
?>

<!DOCTYPE html>
<html>
<body>

<?php
    // Sessionda bulunan verileri yazdırır
    echo "Kullanıcı Adı: " . $_SESSION["kullanici_adi"];    // Çıktı: Kullanıcı Adı: x
    echo "Sepetiniz: " . $_SESSION["sepet"];    // Çıktı: Sepetiniz: laptop
?>

</body>
</html>

 

Session Kontrol Etme

Session kontrolünü isset() ile yapacağız.

if(isset($_SESSION["kullanici_adi"]))
    echo "Session Kaydı Var";
else
    echo "Session Kaydı Yok";

//Çıktı: Session Kaydı Var

 

Session Verilerini Silme

Session verilerini silmek için unset() ve session_unset() fonksiyonlarını kullanacağız. Tek olarak session verisini silmek için unset(), bütün verileri silmek için session_unset() fonksiyonunu kullanabiliriz. Session verileri silinmesine rağmen oturum hala açıktır, yeni veriler kaydedilebilir.

unset("sepet");  // sepet adındaki oturum bilgilerini siler

session_unset();  // bütün oturum bilgilerini siler (kullanici_adi ve sepet)


Session Oturumunu Sonlandırma

Session oturumunu sonladırmak için session_destroy() fonksiyonunu kullanacağız. Bu sayede oturum kapanacağı için bütün session verileri de silinmiş olacak.

session_destroy();

 

Session ID Değerini Öğrenmek

Gelişmiş tarayıcılar aracılığıyla session ID değerini öğrenmek çok basitleşti. Chrome kullanıyorsanız mouse ile sağ tıklayıp 'Öğeyi Denetle', Mozilla Firefox kullanıyorsanız 'Öğeyi İncele' yaparak öğrenebilirsiniz. PHP ile öğrenmek istiyorsanız session_id() fonksiyonunu kullanabilirsiniz.

echo session_id();

 

paylaş Paylaş
oylama yap Oyla

makale yorumları YORUMLAR

2 Yorum


yorum

fatih yasin söndüren

06 Ocak 2017 14:33


hocam bir sorum olacaktı phpmyadmindeki idisi mesela 1 olan kullanıcı admin.phpye girme yetkisi olsun gibi veri çekme olayını yapamadım yardımcı olur musunuz

yorum

Admin

06 Ocak 2017 22:48


merhaba hocam en basit haliyle şöyle anlatabilirim; öncelikle veri tabanından id değerini çekeceksiniz, daha sonra kontrol.php dosyası içerisinde if ile koşul kontrolleri yapacaksınız ve uygun sayfaya yönlendireceksiniz. admin.php içerisinde de (aslında bütün sayfalarınızda session kontrolü yapmalısınız ki admin olan kişi bütün sayfalarda tanınsın) session kontrollerini yapacaksınız. şu şekilde;

kontrol.php içinde

if(veritabaniid == 1)
admin için session oturumu oluşturma kodları
yönlendir admin.php
else
yönlendir index.php


admin.php içinde

if(isset ... session kontrolü)
admin sayfası kodları
else
hata mesajı
yönlendir index.php


not: kontrol.php kodları uygun şekilde düzenlenirse direkt olarak admin.php'ye ya da istediğiniz dosyaya yazabilirsiniz, sadece kafanız karışmaması için ayırarak örnek verdim.