Temel Kullanım

Oturumlar, bireysel kullanıcılar için verileri benzersiz bir oturum kimliğine göre depolamanın basit bir yoludur. Bu, sayfa istekleri arasında durum bilgisini sürdürmek için kullanılabilir. Oturum kimlikleri normalde tarayıcıya oturum çerezleri aracılığıyla gönderilir ve kimlik, mevcut oturum verilerini almak için kullanılır. Oturum kimliği veya çerezlerinin olmaması, PHP'nin yeni bir oturum oluşturmasını ve yeni bir oturum kimliği üretmesini sağlar.

Oturumlar basit bir iş akışını takip eder. Bir oturum başlatıldığında, PHP ya aktarılan kimliği (genellikle bir oturum çerezinden) kullanarak var olan bir oturumu geri alır ya da hiçbir oturum aktarılmamışsa yeni bir oturum oluşturur. PHP, $_SESSION süper küreselini, oturum başladıktan sonra oturum verileriyle doldurur. PHP kapandığında, $_SESSION süperküresel içeriğini otomatik olarak alacak, dizileştirecek ve oturum kaydetme işleyicisini kullanarak depolanmaya gönderecektir.

Öntanımlı olarak PHP, session.save_handler tarafından atanan dahili dosya kaydetme işleyicisini kullanır. Bu, oturum verilerini session.save_path yapılandırma yönergesi tarafından belirtilen konumda sunucuya kaydeder.

Oturumlar, session_start() işlevi kullanılarak elle başlatılabilir. session.auto_start yönergesine 1 atanmışsa, istek başlatıldığında oturum otomatik olarak başlayacaktır.

Oturumlar normalde PHP bir komut dosyasını yürütmeyi bitirdiğinde otomatik olarak kapanır, ancak session_write_close() işlevi kullanılarak elle de kapatılabilir.

Örnek 1 - Bir değişkeni $_SESSION ile kayıt altına almak

<?php
session_start
();
if (!isset(
$_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>

Örnek 2 - $_SESSION ile bir değişkeni tanımsız yapmak

<?php
session_start
();
unset(
$_SESSION['count']);
?>

Dikkat

$_SESSION dizisinin tamamını unset($_SESSION) ile tanımsız YAPMAYIN. Bu işlem, oturum değişkenlerinin $_SESSION süper küreseli üzerinden kayıt altına alınmamasına sebep olacaktır.

Uyarı

Başka bir değişkene gönderimi tekrar tanımlı kılmanın bir yolu olmadığından oturum değişkenlerinde gönderimleri kullanamazsınız.

Bilginize:

Dosya tabanlı oturumlar (PHP'de öntanımlı) bir oturum bir kez session_start() veya dolaylı olarak session.auto_start aracılığıyla açıldığında oturum dosyasını kilitler. Bir kez kilitlendiğinde, başka hiçbir betik, session_write_close() çağrılana kadar veya ilk betik sonlanana kadar aynı oturum dosyasına erişemez.

Bu, AJAX'ı yoğun şekilde kullanan ve aynı anda birden çok istek alan http sitelerinde büyük olasılıkla bir sorundur. Bununla başa çıkmanın en kolay yolu, oturumda gerekli herhangi bir değişiklik yapılır yapılmaz, tercihen betiğin başlarında, session_write_close() işlevini çağırmaktır. Bunun yerine, eşzamanlılığı destekleyen farklı bir oturum artucu da kullanılabilir.

add a note add a note

User Contributed Notes 1 note

up
20
AlexFBP
11 years ago
Regardless, if you need to set the header 'Location:' before closing the session; explicitly close the php script with "exit()" or "die()" functions. Remember that when a php script ends, the session automatically are going to be closed.
To Top