session_start
(PHP 4, PHP 5, PHP 7, PHP 8)
session_start — Yeni bir oturum başlatır veya eskisini yeniden devreye sokar
Açıklama
session_start() çağrıldığında veya bir oturum otomatik
başladığında, PHP kayıtlı oturum aç ve oku işleyicilerini çağırır. Bunlar,
öntanımlı veya PHP eklentileri (SQLite veya Memcached gibi) tarafından
sağlanan yerleşik kayıt altına alma işleyicileri veya
session_set_save_handler() ile tanımlanan özel
işleyiciler olacaktır. Oku geriçağırımı, özel bir dizgeleştirilme biçiminde
saklanan mevcut oturumun verisini alıp döndüğünde PHP dahili olarak bu
veriyi nesneleştirerek $_SESSION dizisini doldurmakta kullanır.
İsimli oturumlar kullanmak için bu işlevden önce bir
session_name() çağrısı yapılmalıdır.
session_start() işlevi,
session.use_trans_sid
etkinken URL yeniden yazımı için dahili çıktı eylemcisini kayıt altına alır.
Eğer kullanıcı ob_gzhandler() işlevini veya
ob_start() ile benzerini kullanıyorsa çıktı eylemcilerin
sırası çıktının düzgün olmasında önem kazanır. Örneğin, kullanıcının
oturumu başlatmadan önce ob_gzhandler() işlevini kayıt
altına alması gerekir.
Bağımsız Değişkenler
seçenekler
-
Belirtilmişse, geçerli oturum yapılandırma yönergelerini
geçersiz kılacak seçenekleri içeren ilişkisel bir dizi olmalıdır.
Anahtarların session.
önekini içermemesi gerekir.
Normal yapılandırma yönergelerine ek olarak bir
read_and_close
seçeneği de belirtilebilir.
Bu anahtara değer olarak true
atanırsa, okuma işleminin ardından
oturum hemen kapanır, böylelikle, oturum verileri değiştirilmeyecekse
gereksiz kilitlemeden kaçınılmış olur.
Dönen Değerler
Oturum başarıyla başlatılabilmişse true
aksi takdirde false
döner.
Örnekler
- Temel oturum örneği
Örnek 1 - sayfa1.php
<?php
// sayfa1.php
session_start();
echo '1. sayfaya hoş geldiniz';
$_SESSION['renk'] = 'yeşil';
$_SESSION['hayvan'] = 'kedi';
$_SESSION['zaman'] = time();
// Oturum verisi kabul edilmişse çalışır
echo '<br /><a href="sayfa2.php">2. Sayfa</a>';
// Veya gerekirse oturum kimliği üzerinden de aktarılabilir
echo '<br /><a href="sayfa2.php?' . SID . '">2. Sayfa</a>';
?>
sayfa1.php gösterildikten sonra, ikinci sayfa
sayfa2.php oturum verisini sihirli bir şekilde
içerecektir. SID
sabiti dahil, oturum kimliklerinin aktarımı hakkında
bilgi edinmek için oturum eklentisi
okunabilir.
Örnek 2 - sayfa2.php
<?php
// sayfa2.php
session_start();
echo '2. sayfaya hoş geldiniz<br />';
echo $_SESSION['renk']; // yeşil
echo $_SESSION['hayvan']; // kedi
echo date('Y m d H:i:s', $_SESSION['zaman']);
// sayfa1.php'de yaptığımız gibi burada da SID kullanılabilir
echo '<br /><a href="sayfa1.php">1. Sayfa</a>';
?>
session_start() ve seçenekler
Örnek 3 - Çerez ömrünü değiştirmek
<?php
// Ömrü 1 gün olan kalıcı bir çerez gönder
session_start([
'cookie_lifetime' => 86400,
]);
?>
Örnek 4 - Oturumu okuyup kapatmak
<?php
// Oturumda hiçbir şeyi değiştirmenin gerekmeyeceği biliniyorsa
// oturum dosyasını kilitlemekten ve diğer sayfaları engellemekten
// kaçınmak için doğru yol oturumu okuyup hemen kapatmaktır.
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);
Notlar
Bilginize:
Çereze dayalı oturumlar kullanmak için tarayıcıya herhangi bir çıktılama
yapmadan önce mutlaka bir session_start() çağrısı
yapılmalıdır.
Bilginize:
ob_gzhandler() işlevinin yerine zlib.output_compression
yönergesinin kullanımı önerilir.
Bilginize:
Bu işlev yapılandırmaya bağlı olarak dışarıya çeşitli HTTP başlıkları
gönderir. Bu başlıkları özelleştirmek için
session_cache_limiter() işlevine bakınız.