(PHP 7 >= 7.1.0, PHP 8)
session_create_id — Yeni bir oturum kimliği oluşturur
session_create_id() geçerli oturum için yeni bir oturum kimliği oluşturmak için kullanılır. Çakışmayan oturum kimliği döndürür.
Oturum etkin değilse çakışma denetimi yapılmaz.
Oturum kimliği php.ini ayarlarına uygun olarak üretilir.
Çöp toplayıcı (gc) görev betiği için http sunucusunun kullanıcı kimliğinin kullanılması önemlidir. Aksi takdirde, özellikle dosya kaydetme işleyicisinde izin sorunları yaşanabilir.
önek
önek
belirtilirse, yeni oturum kimliği bu önek
ile başlar. Oturum kimlğinde her karaktere izin verilmez. Geçerli
karakterler: a-z A-Z 0-9 , (virgül) ve - (tire)
.
Azami uzunluk 256 karakterdir.
session_create_id() geçerli oturum için çakışmayan yeni
bir oturum kimliği döndürür. Etkin olmayan bir oturum için kullanılırsa
çakışma denetimi yapılmaz. Başarısızlık durumunda false
döner.
Örnek 1 - session_create_id() ile session_regenerate_id() örneği
<?php
// Oturum başlatma işlevimiz zaman damgası yönetimi de içeriyor
function my_session_start() {
session_start();
// Eski oturum kimliği kullanılmasın
if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
session_destroy();
session_start();
}
}
// Oturum kimliğini yeniden üretme işlevimiz
function my_session_regenerate_id() {
// Çakışmasız oturum kimliği üretilmesi için
// session_create_id() işlevini oturum etkinken çağırmalıyız
if (session_status() != PHP_SESSION_ACTIVE) {
session_start();
}
// UYARI: Önek için asla gizli kalması gereken verileri kullanmayın!
$newid = session_create_id('myprefix-');
// Silinmiş zaman damgasını ata. Oturum verisi sırf bu nedenle silinmesin
$_SESSION['deleted_time'] = time();
// Oturumu bitir
session_commit();
// Kullanıcı tanımlı oturum kimliği kabul edildiğinden emin olun
// BİLGİ: Normal işlemler için use_strict_mode etkin olmalıdır.
ini_set('session.use_strict_mode', 0);
// Yeni özel oturum kimliğini ata
session_id($newid);
// Yeni özel oturum kimliği ile oturmu başlat
session_start();
}
// use_strict_mode etkin olduğundan emin olun.
// use_strict_mode güvenli bir oturum için zorunludur.
ini_set('session.use_strict_mode', 1);
my_session_start();
// Oturum kimliğinin yeniden üretilmesini gerektiren durumlar:
// - Kullanıcı oturum açmışsa
// - Kullanıcı oturumu kapatmışsa
// - Belirlenen süre aşılmışsa
my_session_regenerate_id();
// Diğer işlemler ...
?>