array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.session-start.php', 1 => 'session_start', ), 'up' => array ( 0 => 'ref.session.php', 1 => 'Oturum İşlevleri', ), 'prev' => array ( 0 => 'function.session-set-save-handler.php', 1 => 'session_set_save_handler', ), 'next' => array ( 0 => 'function.session-status.php', 1 => 'session_status', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/session/functions/session-start.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
session_start — Yeni bir oturum başlatır veya eskisini yeniden devreye sokar
session_start() bir oturumu ya oluşturur ya da GET, POST veya bir çerez gibi bir istek üzerinden aktarılan oturum kimliğine dayalı olarak eski bir oturumu geçerli oturum haline getirir.
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.
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.
Sürüm: | Açıklama |
---|---|
7.1.0 |
session_start() oturumu başlatmada başarısız
olursa artık false döndürüyor ve $_SESSION
dizisini artık ilkendirmiyor.
|
Ö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>';
?>
Ö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,
]);
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.