PHP Dersleri #24 – Oturum Yönetimi (Session)


Herkese merhaba arkadaşlar, kodportali.com PHP derslerine kaldığı yerden tüm hızıyla oturum yönetimi yani session ile devam ediyoruz.

 

Session Nedir ve Nerelerde Kullanılır?

Session aslında çerezlere benzer fakat çerezlerden bir çok farkı vardı. Gelin bunlardan bahsedelim. Öncelikle çerezlerin ne zaman silineceğini biz belirliyoruz fakat session ‘da kullanıcı tarayıcıyı veya sayfayı kapattığında veya bizim silmek istediğimiz yerde otomatik olarak silinir. Yani herhangi bir zamana bağlı değildir. Session ‘lar $_SESSION global değişken dizininde okunur ve cookies’ler gibi fonksiyon ile belirtmemiz gerekmez. Çerezler tanımlanırken çerezin adı ve değeri tarayıcıya açık olarak gönderilir fakat session öyle değildir session tanımlandığı zaman sunucuya adı ve değeri gönderilmez onun yerine PHPSESSID  adında bir session id gönderilir ve bu sunucuda yerel olarak saklanır. Kullanıcının oturumunu bu id sayesinde kime ait olduğu bulunur ve düzenlenir/silinir. Session‘lar sayfayı veya tarayıcıyı kapatınca silinmesi gereken verileri olduğu yerlerde kullanılır.

 

Session’lar İle İşlemler

 

Session Oluşturma

Bir oturum başlatmak için session_start() fonksiyonunu kullanırız bu fonksiyon yeni bir oturum başlatır fakat bazı sunucularda oturum yönetimi otomatik olarak açıktır ve bunu kullanmaya çalışırsak hata verir. Buna dikkat ederek başlıyoruz. Öncelikle yukardada bahsettiğimiz gibi silme, düzenleme işlemleri $_SESSION üzerinden yapılır.

Evet gördüğünüz üzere yukarıdaki örneğimizde hemen yeni bir oturum başlattık ve $_SESSION global dizisine bir değer yazdık.  Bu değer tanımlandığı zaman kullanıcı sayfayı veya tarayıcıyı kapatmadığı sürece her girdiği sayfada tekrar döndürülür ve kullanılabilir. $_SESSION dizisine değer olarak string, int, array, boolean gibi PHP tarafından desteklenen bir çok veri tipi eklenebilir.

 

Session Silme

Bir session‘u silmek için unset() fonksiyonunu kullanırız. Diziler dersindede bahsettiğimiz bu fonksiyon bir diziden değer silmek için kullanılıyordu. Hemen örneğimiz ile daha açıklayıcı hale getirelim.

Yukarıdaki örneğimizde yine yeni bir oturum başlattık ve sonra name adında bir değer atadık, daha sonra atadığımız değeri unset() fonksiyonu ile sildik. Peki ya tüm sessionları silmek istersek ne yapıcaz? Çok kolay, bunun içinde session_destroy() fonksiyonunu kullanırız.

Yukarıdaki örneğimizde yine yeni bir oturum başlattık, name ve age adında iki değer atadık. Fakat en son satırda session_destroy() fonksiyonumuzu kullandık. Bu fonksiyon bizim oturumumuzu yok etmeye, bitirmeye yarar. Yani kısaca tüm session‘ları siler.

 

Session Var mı Yok mu Diye Kontrol Etmek

Oturumumuza tanımladığımız bir değer var mı yok mu diye kontrol etmek için yine diziler dersinde bahsettiğimiz isset() fonksiyonunu kullanırız. Bu fonksiyon dizi içinde belirttiğimiz anahtar kelimenin var olup olmadığını kontrol ediyordu. Bunu $_SESSION dizisi üzerinde kullanacağınız. Hemen bir örnekle açıklayıcı hale getirelim.

Yukarıdaki örneğimizde yine yeni bir oturum başlattık ve altında direk belirttiğimiz değer var mı yok mu diye kontrol ettik. Biz böyle bir şey tanımlamadığımız için ekrana ‘Oturumda age adında bir veri yok.’ yazıcaktır.

 

Geçerli Oturumun ID’sini Almak

Geçerli oturumumuzun PHPSESSID  ‘sini almak için session_id() fonksiyonunu kullanırız. Bu fonksiyon size o anki oturumun id’sini döndürecektir eğer o an bir oturum yoksa boş string yani “” döndürecektir.

Bir Session ‘ın Statüsünü Öğrenmek

Oturum durumunu öğrenmek içinde session_status() fonksiyonunu kullanırız. Bu bize integer değer döndürür. Bu değerler PHP çekirdeğinde önceden belirlenmiş oturum durumları ile özleşmiştir. Örnek ile daha açıklayıcı hale getirelim.

Yukarıdaki örneğimizde switch deyimi içinde o anki oturum durumumuzu yazdırdık, biz herhangi bir oturum başlatmadığımız için ekrana “Şu anda herhangi bir oturum bulunmuyor.” yazıcaktır.

Öğrendiklerimiz İçin Genel Bir Örnek

Yukarıdaki örneğimizdede gördüğünüz gibi yeni bir oturum başlattık, değer atadık ve ekrana o değerleri kullanarak bir cümle yazdırdık ve oturumu sonlandırdık. Kodumuzu çalıştırdığımız zaman ekranda “Benim adım kodportali ve 18 yaşındayım.” yazıcaktır.

 

Evet bu dersimizinde burada sonuna geldik. Herhangi bir sorunuz olursa yorumlarda sorabilirsiniz.

Sitemizdeki tüm PHP dersleri için buraya tıklayabilirsiniz.

[Toplam:1    Ortalama:5/5]

Sizin Tepkiniz Nedir?

süper süper
0
süper
bilgilendirici bilgilendirici
0
bilgilendirici
beğenmedim beğenmedim
0
beğenmedim
beğendim beğendim
0
beğendim
Düşündürücü Düşündürücü
0
Düşündürücü
Anıl Mısırlıoğlu
Yazılım Mühendisi

0 Yorum

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

Bir format seçin
Kişisel Test
Kişiliğe dair bir şey ortaya çıkarmayı amaçlayan sorular dizisi
Basit Test
Bilgiyi kontrol etmek isteyen doğru ve yanlış cevaplı sorular dizisi
Anket
Karar vermek veya görüş belirlemek için oylama yapmak
Serbest Yazı
Yazılarınıza Görseller Bağlantılar Ekleyebilirsiniz
Liste
Klasik İnternet Listeleri
Geri Sayım Listesi
Klasik İnternet Geri Sayım Listeleri
Açık Liste
Kendi öğenizi gönderin ve en iyi sunum için oy verin
Oylanabilir Liste
En iyi liste öğesine karar vermek için yukarı veya aşağı basın
Fotoyla Anlatım
Kendi resimlerinizi yükleyin ve birşeyler anlatın
Video
Youtube, Vimeo veya Vine Kodları
Ses
Soundcloud veya Mixcloud İçerikleri
Görsel
Fotoğraf veya GIF
GIF
GIF Formatı