v2.5.2
Giriş yap

php session_set_cookie_params neden çalışmıyor ?

emmir2
357 defa görüntülendi
function sessionStart($lifetime,$path,$domain,$secure,$httponly){
    session_set_cookie_params($lifetime,$path,$domain,$secure,$httponly);
    session_start();
    @ob_start();
}

sessionStart('0','/','localhost','false','true');
h4ckdr0
519 gün önce

Bu kod parçacığında session_set_cookie_params fonksiyonu kullanılarak oturum çerezini ayarlanmaya çalışılmaktadır. Ancak bu fonksiyonun çalışmamasının birkaç sebebi olabilir. Öncelikle, bu fonksiyon oturum başlatılmadan önce çağrılmalıdır. Eğer oturum başlatılmışsa bu fonksiyon hiçbir etkisi olmayacaktır. Bu yüzden fonksiyonun session_start() fonksiyonundan önce çağrılması gerekmektedir.

İkinci olarak, bu fonksiyonun dördüncü parametresi bir boolean değer alır ve bu değer true ise oturum çerezleri sadece HTTPS bağlantılarında gönderilecektir. Ancak bu kod parçacığında bu parametre false olarak ayarlanmıştır. Bu yüzden oturum çerezleri herhangi bir HTTP ya da HTTPS bağlantısında gönderilebilir. Bu nedenle bu fonksiyonun doğru bir şekilde kullanılmaması nedeniyle beklenen sonucu vermemesi muhtemeldir.

Son olarak '0' değeri ile vermiş olduğunuz parametresi geçersizdir. $lifetime parametresi, oturum çerezinin geçerlilik süresini belirtir ve süreyi saniye cinsinden belirtilmesi gerekir. Bu nedenle, '0' değeri geçersizdir ve bu işlev çalışmayacaktır. Eğer oturum çerezinin geçerlilik süresini belirtmek istiyorsanız, bu parametreye geçerli bir süre değeri vermeniz gerekir. Örneğin, oturum çerezinin geçerlilik süresini 1 saat olarak belirlemek için aşağıdaki gibi bir değer verebilirsiniz:

$lifetime = 60 * 60; // 1 saat
session_set_cookie_params($lifetime, $path, $domain, $secure, $httponly);