Kullanıcı adı ve şifre yardımıyla yetki alarak web sayfasında oturum açma işlemleri, PHP’de SESSION değişkeni yardımıyla gerçekleştirilir. Oturum değişkeni genel (global) bir değişkendir.
PHP’de session, yani oturum değişkenleri sunucu tarafında saklanır. Dolayısıyla bu değişkene kullanıcının müdahalesi, programcı istemedikçe mümkün değildir. Bu açıdan bakıldığında oturum açma gibi yüksek önem içeren ve riskli bir durum güvenilir hale getirilmiştir.
PHP’de oturum değişkeni kullanılacaksa, ilgili PHP dosyasında öncelikle oturumu başlatan bir fonksiyon kullanılmalıdır:
1 | session_start(); |
session_start() fonksiyonu, bir oturum işlemi gerçekleştirileceğini sunucuya bildirir. Dikkat edilmesi gereken en önemli şey, session_start() fonksiyonu dosyanın ilk komutu olmalıdır. Hatta bu komuttan önce herhangi bir boşluk karakterine bile yer verilmemelidir. İlk komut olmasına aşağıdaki gibi bir uyarı alıyor olabilirsiniz:
1 | Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\teknikakil\index.php:1) in C:\wamp\www\teknikakil\index.php on line 3 |
Bu uyarının anlamı, session_start() fonksiyonundan önce bir karakterin ekrana basıldığını ifade eder. Bu durumda dosyanın Notepad++ gibi bir editör ile “UTF8 – BOM Kodlama” olarak kaydedilmesi gerekir. (Kodlama menüsü ile bu ayar gerçekleştirilebilir.)
Oturum Değişkenine Değer Atama
PHP’de oturum değişkeni, global bir dizi değişkendir: $_SESSION[]
Bu değişkene değer aktarımı, herhangi bir diziye veri aktarımına benzer şekildedir. Örneğin kullanıcı adını tutan bir oturum değişkeni yapmak istiyorsak aşağıdaki PHP komutunu kullanırız:
1 | $_SESSION["kullanici_adi"] = "hurkal"; |
Oturum Değişkenindeki Değeri Okuma
PHP’de oturum değişkenini okumadan önce, bu değişkenin var olup olmadığı kontrol edilir ve daha sonra gerekli işlemler gerçekleştirilir. PHP’de oturum değişkeninden değer okuma işleminin şu şekilde yapılması önerilir:
1 2 3 4 5 6 7 8 | <?php if (isset($_SESSION["kullanici_adi"])) { echo $_SESSION["kullanici_adi"]; } ?> |
Oturum Değişkenini Yok Etme
PHP’de oturum değişkenini ortadan kaldırmak için unset() fonksiyonu kullanılabilir veya söz konusu oturum değişkenine null değer atanabilir. Ancak unset() fonksiyonu ile bu işlemi gerçekleştirmek daha yerinde olacaktır.
1 2 3 4 5 | <?php unset($_SESSION["kullanici_adi"]) ?> |
Yukarıdaki komut sayesinde $_SESSION[“kullanici_adi”] değişkeni silinir.
Tüm Oturum Değişkenlerini Yok Etme
Eğer oturum değişkenlerinin tamamını yok etmek istiyorsak aşağıdaki fonksiyon kullanılır:
1 | session_destroy(); |