ID: 13116 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Feedback Bug Type: HTTP related Operating System: FreeBSD 4.3 PHP Version: 4.0.6 New Comment:
Your code works for me, but I don't have a FreeBSD box to test on nor an Internet Explorer browser. However, let's not assume yet that this is a FreeBSD problem, since that really seems unlikely with such a basic thing. The much more probable case is that it is an IE bug, as IE has historically had problems with adhering to HTTP standards specifically with cookies. If your problem (as you say) is like the other bug you link to, then it sounds like the problem lies in the browser not returning the cookie rather than the cookie not being set. To help investigate this, please check as many of the following things as you know how: 1) HTTP response your PHP page generates 2) subsequent HTTP request from the browser (meaning, a request after the cookie has been set) 3) Time (in GMT) on the browser 4) Time (in GMT) on the server 5) URL being used to access the page 6) Domain being used to set the cookie If the problem doesn't reveal itself after inspecting these things, use the header function as you did but with all hardcoded values to make sure you're setting the cookie you think you are and that the date is sufficiently far in the future to rule out any time synchronization problems. Thanks for your help! Chris Previous Comments: ------------------------------------------------------------------------ [2001-09-03 16:47:38] [EMAIL PROTECTED] 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 ------------------------------------------------------------------------ [2001-09-03 16:33:11] [EMAIL PROTECTED] 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 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php