php Session (Oturum yönetimi)


0
PHP-DERSLERİ - PHP Session (Oturum yönetimi)
PHP-DERSLERİ - PHP Session (Oturum yönetimi)

php Session (Oturum yönetimi)

php Session konusu php cookie ile ilişkili bir nevi o yüzden php cookie konusunu bilmiyorsanız mutlaka öğrenip sonra bu konuya geçin.

peki aralarında ne gibi bir fark var? şöyle; php Session ve php cookie kullanım ve uygulama olarak aynı ama teknik olarak farklı.  

Session aynı çerezlerde olduğu gibi “$_SESSION” global dizisi ile okunur, fakat yazılması için çerezlerdeki gibi bir fonksiyona ihtiyaç duymaz. ne demek istediğimi birazdan anlayacaksınız.

Çerezlerin son kullanma tarihini biz belirlerken Session tarayıcının kapatılmasıyla silinir. Yani siteye girildiğinde oluşturacağımız Session, kullanıcının sayfayı kapatmasıyla silinecektir.

Session ve cookie arasındaki fark

dediğim gibi sadece teknik olarak farklı, Kullanım oluşturma ve silme dışındaki asıl teknik farkı da session tarayıcıya direkt olarak tanımlanmıyor olmasıdır. ayrıca, mesela biz bir çerez tanımladığımızda bu çerezin adı ve değeri tarayıcıya açıkça gönderilir ve bu değer istenilen süre boyunca tarayıcıda açık bir şekilde saklanır.

ama Session’da ise kaydedilen değer ve değerin adı tarayıcıya gönderilmez. Onun yerine “PHPSESSID” adında içinde uzun bir session id değeri bulunan bir çerez tanımlanır. Ve oluşturduğumuz session’lar sunucuda saklanır. ayrıca girenlerin gönderdiği PHPSESSID kimliğine göre kime ait oldukları bulunur ve yeniden düzenlenir.

php Session nun buradaki olayını daha iyi anlamak için örnek;

banka size bir kredi kartı verir. bu kartın içinde size ait anahtar kod verilir. ama bilgileriniz ve para bankada saklanır. bilgilerinize ve paralarınıza ulaşmak için kartı kullanırsınız. Sessionda size direkt olarak bilgileri vermek yerine bir PHPSESSID adında değer verir. o değer üzerinden size ait olan verileri okur.

php session ve cookie
php session ve cookie

php session nerelerde kullanılır?

kullanıcılarını sitenize giriş yaptığında; tarayıcıyı kapatana kadar giriş yapmış şekilde tutmanıza ve bazı yerlerde sanal sepet uygulamaları gerçekleştirmesinde kullanılır.

Session ve cookie
Session ve cookie

php session oluşturma


session’ları tek bir $_SESSION global dizisi üzerinden okuyup, oluşturup, silebiliyoruz. ama session kullanmaya ya da oluşturmaya başlamadan önce her sayfanın en başında session_start() fonksiyonunu yazmalıyız.

bu fonksiyon session olayını kullanıma hazırlar ve olmazsa olmazdır.

NOT: Bazı sunucularda session kullanımı otomatik olarak açıktır, açık olan sunucularda session_start() yazmaya çalışırsanız hata verir. Bu durumda bu fonksiyonu kullanmaya gerek yoktur.

yukarıdaki örnekte, mesaj adında bir session oluşturdum ve değerini Selam dünya! yaptım.

böylelikle Bu oluşturduğumuz değer giren kullanıcının tarayıcısı kapatılmadığı sürece gezdiği her sayfaya tekrar geri gönderilecek. ve bir önceki sayfada yaptığı işlemleri, kullanıcı adı ya da şifre gibi verileri bu şekilde yeniden hatırlanmasını sağlamış olacak.

php session dizi(array) atama nasıl yapılır?


php session’lara sayı yazı gibi değerler atayabiliriz ama aynı zamanda dizi(array) da atayabiliriz.

örneğin;

örnekte: session’ların içerisinde dizi verileri de taşıyabilirim.  başka sayfalarda çağırdığımda aynen dizi şeklinde kullanmaya devam edebilirim.

php session silme


php session silebilmek için php dizileri ve php değişkenleri konusundaki gibi “unset()” fonksiyonunu kullanıyoruz.

örnekte önce php session oluşturduk ve unset() fonksiyonu ile sildim.

bütün session’lar nasıl silinir?


bu işlem için:  “session_destroy()” fonksiyonunu kullanacağız bu fonksiyon tanımlanmış tüm php session’ları siler.

örnek;

Session var mı? yok mu? diye kontrol etmek


yine php değişkenleri ve php dizileri konularında’da kullandığımız “isset()”  fonksiyonu ile yapıyoruz. bu fonksiyon ile kontrol edeceğimiz session varsa olumlu yoksa olumsuz cevap verir.

örnek,

session kullanımı


şimdi anlatıklarımı bir örnek ile uygulayacağım. birinci.php adında bir php dosyası oluşturacağım. ve içinde bir session oluşturup bir başka php sayfasında o veriyi okutmayı deneyeceğim.

bunları yazıp çalıştıracağım ve başka bir sayfa oluşturacağım bunun ismi ikinci.php olacak.

birinci.php yi ziyaret ettikten sonra bu sayfaya geldiğimde ekranda Daha önceden kaydedilmiş isim: recep yazacaktır. Eğer birinci.php ye uğramadan yani session oluşturmadan ikinci.php ye girmeye çalışırsam böyle bir session oluşturulmadığı için kod hata verecektir.

 

bir sonraki ders:  php veri türleri

php resmi sitesi: php.net


Like it? Share with your friends!

0
RECEP AKYÜZ

2012'den bu yana farklı alanlarda projeler üretmekteyim konusu; yazılım,tasarım,kodlama,programlama olan benim başlıca ilgi alanım 2014'den bu yana tecrübelerimi 3 farklı web sitesinden yayınlayarak yeni farklı düşünen insanlara aktarıyorum.

0 Comments

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.