Tüm web programlama dillerinde olduğu gibi Php’de de oturum bilgilerini saklamak ve oturumları yönetmek için Session’lar kullanılır. Sessionlar çerezlerden farklı olarak kullanıcının bilgisayarında değil de sunucu bilgisayarı üzerin de saklanır. Bu nedenle üyelik sistemleri, alış veriş gibi güvenliğin önemli olduğu noktalarda Session kullanımı zorunludur.
Session Kullanımıyla İlgili Bilinmesi Gerekenler
- Session oluşturulduğu anda bu veriler sunucu bilgisayarı üzerinde ki bir text dosyası içerisinde tutulur.
- Kullanıcı oturumu kapattığında veya sayfadan ayrıldığında Session bilgileri silinir.
- Çerezlerde ki gibi süreli Session’lar oluşturulamaz.
- Sayfada Session değişkeni kullanılacaksa sayfa da hiçbir kod yazılmadan önce session_start() metodu çağrılmalıdır. Aksi takdirde hata mesajı görüntülenir.
- Oturum değişkeni olan $_SESSION global bir değişkendir.
Session Oluşturma – Session Verilerine Erişim – Session Yok Etme
Burada ki örnekler Session kullanım mantığını anlatmak üzere basit şekilde hazırlanmıştır. Konunun tam olarak kavranabilmesi için örneği 3 adet sayfa oluşturarak anlattım.
Sayfa1.php : Bir form yardımıyla e-posta adresiniz ve sevdiğiniz renk bilgisi alınarak Session’a aktarılıyor.
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 |
<?php session_start(); ?> <!doctype html> <html> <head> <title>Session Kullanımı</title> </head> <body> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> E-Posta Adresi :<input type="text" name="eposta"> Sevdiğiniz Renk:<input type="text" name="renk"> <input type="submit" name="submit" value="Submit"> </form> <br> <a href="sayfa2.php">2.Sayfaya Git </a><br> <a href="sayfa3.php">3.Sayfaya Git </a> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $_SESSION['eposta']=$_POST['eposta']; $_SESSION['renk']=$_POST['renk']; } ?> </body> </html> |
Kodlar Php’de yeniyseniz biraz karmaşık gelecektir. Öncelikle butona tıklandığında form’un action methoduyla sayfa kendine yönlendirildi. Alt kısımda ki kodlarda ise sayfa post methodu ile yönlendirildiyse eposta ve renk değişkenleri alınarak Session’lar oluşturuldu.
Sayfa2.php : Burada bir önceki sayfada oluşturulan Session değerleri çağrılarak ekranda gösterildi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php session_start(); ?> <!doctype html> <html> <head> <title>Session Kullanımı</title> </head> <body> <?php if(isset($_SESSION["eposta"])&&isset($_SESSION["renk"])) { ?> E-Posta Adresi: <?php echo $_SESSION['eposta']; ?><br> Sevdiğiniz Renk: <?php echo $_SESSION['renk']; }?><br> <a href="sayfa1.php">1.Sayfaya Git </a> </body> </html> |
Yukarıda ki kodları incelediğinizde bir if bloğu yardımıyla Session’ların önceden oluşturulup oluşturulmadığının kontrol edildiğini fark etmişsinizdir. Eğer bunu yapmasaydık Session’lar oluşturulmadığı takdirde sayfaya geldiğinizde hata mesajıyla karşılaşırdınız.
Sayfa3.php: Burada ise oluşturulan Session’ları yok ettik.
1 2 3 4 5 6 7 8 9 |
<?php session_start(); unset($_SESSION['eposta']); session_destroy(); ?> <a href="sayfa1.php">1.Sayfaya Git </a> |
Burada ki kodları incelediğinizde unset() metodu ile sadece istenilen isimdeki Session’un yok edildiğini, session_destroy() metodu ile tüm Sessionların yok edildiğini anlamışsınızdır.
Php ile Session kullanımını basit ama etkili bir örnek ile açıklamaya çalıştım. Umarım faydalı olur.
Teşekkürler kardeşim:) 👍