session_create_id

(PHP 7 >= 7.1.0, PHP 8)

session_create_idYeni bir oturum kimliği oluşturur

Açıklama

session_create_id(string $önek = ""): string|false

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.

Bağımsız Değişkenler

ö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)

Dönen Değerler

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.

Örnekler

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

Ayrıca Bakınız