session_start

(PHP 4, PHP 5, PHP 7, PHP 8)

session_startYeni bir oturum başlatır veya eskisini yeniden devreye sokar

Açıklama

session_start(array$seçenekler = []): bool

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.

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.

Sürüm Bilgisi

Sürüm: Açıklama
7.1.0session_start() oturumu başlatmada başarısız olursa artık false döndürüyor ve $_SESSION dizisini artık ilkendirmiyor.

Ö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.

Ayrıca Bakınız

To Top