Session Kullanımı

Session yani oturum sayfalar arasın veri akışı için kullanılan ve genellikle geçici bir klasör içerisinde dosya oluşturarak çalışan bir yöntemdir. Bir ziyaretçi için kaydedilen veriler, yine aynı ziyaretçi tarafından her sayfada erişilebilir. "session_start()" "session_destroy()" fonksiyonları ve "$_SESSION" süper global değişkeni giriş düzeyinde bize yeterli olacaktır.


Bir önceki sayfada verilerin nasıl ekleneceğini anlattık, şimdi ise bunlar için örnekler yapalım.

Oturum açarken şöyle bir dosya kullanalım

PHP kodu
  1. <?php
  2. function hash($alan1,$alan2='') {
  3. return md5($alan1.$alan2.$_SERVER['REMOTE_ADDR']);
  4. }
  5.  
  6. $_POST['isim']=htmlspecialchars($_POST['isim'],ENT_QUOTES);
  7. $_POST['sifre']=htmlspecialchars($_POST['sifre'],ENT_QUOTES);
  8. $sorgu=mysql_query("SELECT id FROM uyeler WHERE nick='".$_POST['isim']."' AND sifre='".$_POST['sifre']."' LIMIT 1");
  9. if($sorgu!==false) {
  10. $_SESSION['isim']=$_POST['isim'];
  11. $_SESSION['hash']=hash($_SESSION['isim']);
  12. echo 'Oturumunuz açıldı';
  13. } else 'Hatalı deneme';
  14. ?>

Görüldüğü gibi form aracılığıyla post edilen kullanıcı adı ve şifreyi kontrol etti, kullanıcı adını ve hashini de session a kaydetti. İsim ve hash bana yetmez derseniz, başka bilgiler de ekleyebilrisiniz ancak session dosyasının küçük olması performans açısından iyidir.

Artık herhangi bir sayfada üyelik kontrolü yapacağımız zaman alttaki şekilde kullanabiliriz.
PHP kodu
  1. <?php
  2. // regenerate etmek zorunda değilsiniz
  3. function hash($alan1,$alan2='') {
  4. return md5($alan1.$alan2.$_SERVER['REMOTE_ADDR']);
  5. }
  6.  
  7. if(isset($_SESSION['isim'])) {
  8. if($_SESSION['hash']!=hash($_SESSION['isim']) {
  9. kayitdefteri($_SERVER['REMOTE_ADDR'].' İp li kullanıcı oturum sırasında ip değiştirdi');
  10. die('GÜVENLİK UYARISI!!!<br />IP adresinizde değişiklik tespit edildi.<br />Oturum sonlandırıldı');
  11. }
  12. echo 'Merhaba '.$_SESSION['isim'];
  13. } else {
  14. echo 'Merhaba ziyaretçi';
  15. }
  16. /*
  17. Çalışmasını istediğiniz kodlar
  18. */
  19. ?>

Bir Sonraki sayfa: Oturumu MySQL aracılığı ile gerçekleştirmek

1 2 3


Okunma: 937 , Oy Sayısı: 16 , Puan: 8.44

Etiketler

session kullanimi , php session kullanimi , c session kullanimi , php de session kullanimi , session kullanimi php ,

deathisonitsway03 Ocak 2010 Pazar 17:30:40


@ dosyayı calıstırdıgımda session-cannot header gibi bir hata alıyorum diyorsanız...bunun cozumu olarak konuda da gectiği gibi ; dosyanızın en ustune <? ob_Start(); ?> koyun ki, http çıktısını tampona kaşelemiş olun (flush)
||


emin08 Ocak 2010 Cuma 08:37:42


tebrik ederim güzel makale olmuş session konusunda birazdağa bilgi sahibi oldum. sınıflarla veri tabanı kullanarak nasıl oturum kontrolu yapılacağı hakkında bir makale yazarsanız memnun olurum . ayrıca sormak istediğim 2 soru var. bazıları çerez kullanarak yapıyor bu oturum kontrollerini.kimisi sadece sesson kullanarak yapıyor bazısı ise hem sesson hemde çerezleri birlikte kullanıyor. sorum şu sizce sağlam bir sitede oturum kontrolü nasıl olmalıdır. teşekkürler...
||


Gündüz Can YILMAZ09 Ocak 2010 Cumartesi 01:18:02


Kullanıcı idsi, yetkisi, gerekiyorsa hash leri gibi bilgilerin sessionda tutulması daha güvenli olur ama saglam bir hash olusturduktan sonra çerez kullanımının da sakıncası olmaz. Kullanıcı çerezini çaldırırsa bile çerezin kullanımına izin verilemeyecek şekilde hashleyebilirisiniz. md5('!SEYRANLI!'.$_SERVER['REMOTE_ADDR'].$sifre); şeklindeki bir hash i çerez için de kullanabilirsiniz.
||




Yorumunuz