Bug #13116 Updated: setcookie would not work when expire is set
ID: 13116
User updated by: gotenforward@yahoo.com
Reported By: gotenforward@yahoo.com
Status: Open
Bug Type: HTTP related
Operating System: FreeBSD 4.3
PHP Version: 4.0.6
New Comment:
Another user experience the same problem like mine
http://www.php.net/bugs.php?id=11492&edit=1
It looks like they are all using FreeBSD
Previous Comments:
------------------------------------------------------------------------
[2001-09-03 16:33:11] gotenforward@yahoo.com
I pretty much get the same error as this link
http://www.php.net/bugs.php?id=11478&edit=1
Over a couple hundreds of users, all of them works fine with IE 5.0+ However, some of the user can
not login due to the cookie is not set.
Whenever I do
setcookie("username",$user,time()+3600,"/",".domain.com");
Some of the users using IE would not get the cookie.
But when i just change it to
setcookie("username",$user,"","/",".domain.com");
It works. But not setting expire time will not write the cookie to harddisk, it just stored into
memory, which is not what I want.
So, I tried to use the header function and see if that helps.
$time = mktime()+ $config[cookieTTL];
$date = gmdate("l, d-M-Y H:i:s", ($time));
header("Set-Cookie: $cookiename=$tmpstring; expires=$date GMT; path=/;");
IE still do not pick up the cookie.
Here is a little function I use to store cookie
function putCookie($config,$cookiename, $varname, $data, $send="") {
// function to store cookie, use serialize() to bypass the limit of using 20 cookies per domain.
// And make it easier to add new cookie later.
//keep this array always static so that when we get out of this function, it still keep the
variable.
static $tmpArray;
$tmpArray[$varname] = $data;
if ($send != "") {
$tmpstring = serialize($tmpArray);
$tmpstring = base64_encode($tmpstring);
$time = mktime()+ $config[cookieTTL];
$date = gmdate("l, d-M-Y H:i:s", ($time));
setCookie($cookiename, $tmpstring, "", $config[cookie_path], $config[CookieURL]); // now
we clean the static array after we send the cookie
unset($tmpstring);
$tmpArray = "";
unset($tmpArray);
}
}
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13116&edit=1
Thread (3 messages)