Bug #13116 Updated: setcookie would not work when expire is set

From: Date: Mon, 03 Sep 2001 20:47:38 +0000
Subject: Bug #13116 Updated: setcookie would not work when expire is set
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-65002@lists.php.net to get a copy of this message
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)

« previous php.dev (#65002) next »