Bug #69006 [Fbk->Opn]: cookie problem

From: Date: Sun, 08 Feb 2015 03:34:06 +0000
Subject: Bug #69006 [Fbk->Opn]: cookie problem
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-190518@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=69006&edit=1 ID: 69006 User updated by: simon_freedom125 at hotmail dot com Reported by: simon_freedom125 at hotmail dot com -Summary: session fail to start? +Summary: cookie problem -Status: Feedback +Status: Open Type: Bug Package: Session related Operating System: windows PHP Version: 5.6.5 Block user comment: N Private report: N New Comment: Description: ------------ The actual version of php is actually 5.6.3 The session does not persist when I set cookie for the session id to last not until the browser is closed. example, to last for a day. When the session id is set to last until the browser is closed, the session start works on subsequent page request. Tested on 3 browsers - chrome, mozilla, and IE. This only happens on IE. realized this problem after upgrading from php 5.4+ I used the session_name function to change the default, so I am not using PHPSESSID. Not sure what is the actual cause. Test script: --------------- session_name('sessionID'); setcookie('sessionID',$sessionID,time()+3600*24,'/',NULL,true); Previous Comments: ------------------------------------------------------------------------ [2015-02-08 00:55:27] simon_freedom125 at hotmail dot com I don't think it is a problem with session_set_cookie_params(). lets say i set 3 different cookies to last for a day. only the sessionID which I renamed away from the default of PHPSESSID does not persist. Just another clearer example. I created a script which allows user to log into their account. A user check remember me so the script extend the cookie time. A total of 3 cookies named, sessionID, name, and a random value, with the same expiry time were given to the client browser. Now, everything is still fine over here. Bug happens after the user clicked log in and then chose to proceed to another request after being redirected from the log in page, like a refresh or clicking on another link. when I called $_COOKIE['sessionID'], undefined call to sessionID error was shown on the screen. Surprising, only the sessionID cookie was affected. The other 2 can be seen in the browser cookie. Not opting remember me will solve the problem, which is weird, only on IE. ------------------------------------------------------------------------ [2015-02-07 18:34:43] yohgaki@php.net Correction. > Regardless of session.use_strict_mode, session.use_strict_mode=Off required. ------------------------------------------------------------------------ [2015-02-07 18:32:33] yohgaki@php.net Regardless of session.use_strict_mode, following code should work session_name('MYSESS1'); session_id('2342424234242424323423'); session_set_cookie_params( some params); session_start(); //do something. Copy $_SESSION to other var, if needed. session_commit(); session_name('MYSESS2'); session_id('abasdfasdasbafdewra'); session_set_cookie_params( some params); session_start(); ------------------------------------------------------------------------ [2015-02-07 18:18:03] yohgaki@php.net Why do you set cookie by yourself? It should be done by session module. Use session_set_cookie_params() and session_start(). If you're enabling session.use_strict_mode (i.e. session.use_strice_mode=On), disable it to set your own ID. Beware that you are less secure with session.use_strit_mode=Off. If you need to use certain session ID to share under use_strict_mode=on, get already initialized session ID after session_start() and use it. This should solve your issue. ------------------------------------------------------------------------ [2015-02-07 16:56:51] simon_freedom125 at hotmail dot com Description: ------------ The actual version of php is actually 5.6.3 The session does not persist when I set cookie for the session id to last not until the browser is closed. example, to last for a day. When the session id is set to last until the browser is closed, the session start works on subsequent page request. Tested on 3 browsers - chrome, mozilla, and IE. This only happens on IE. realized this problem after upgrading from php 5.4+ I used the session_name function to change the default, so I am not using PHPSESSID. Not sure what is the actual cause. Test script: --------------- session_name('sessionID'); setcookie('sessionID',$sessionID,time()+3600*24,'/',NULL,true); ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=69006&edit=1

« previous php.bugs (#190518) next »