#22013 [Opn->Bgs]: setcookie does not work on Mozilla with localhost as domain

From: Date: Mon, 03 Feb 2003 09:19:33 +0000
Subject: #22013 [Opn->Bgs]: setcookie does not work on Mozilla with localhost as domain
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-31932@lists.php.net to get a copy of this message
ID: 22013 Updated by: sniper@php.net Reported By: frankkim@attbi.com -Status: Open +Status: Bogus Bug Type: HTTP related Operating System: Windows PHP Version: 4.3.0 New Comment: It can't really be PHP bug.. Previous Comments: ------------------------------------------------------------------------ [2003-02-02 15:18:12] philip@php.net According to the spec: http://wp.netscape.com/newsref/std/cookie_spec.html The domain must have at least two periods. I'm not sure how this applies to localhost but I guess for localhost just don't set it or set as an empty string. ------------------------------------------------------------------------ [2003-02-02 13:48:21] frankkim@attbi.com $domain is 'localhost' because I am testing on my local machine. I updated the script to not pass the $domain and $expirationTime to the setCookie function and the script now works. I am not sure why 'localhost' would be a problem since I see when I take out $domain and $expirationTime, Mozilla sets the host for the cookie to 'localhost'. Maybe this is a Mozilla bug. ------------------------------------------------------------------------ [2003-02-02 13:38:17] philip@php.net Please confirm that HTTP_HOST exists (i.e. what $domain is) ------------------------------------------------------------------------ [2003-02-02 13:16:18] frankkim@attbi.com By the way, my original test script was kind of stupid. Here is the corrected test script. <?php error_reporting(E_ALL); define('ID', 'id'); define('USERNAME', 'username'); // save the login information into the cookie which will expire in 30 // days $expirationTime = time()+60*60*24*30; $domain = $_SERVER['HTTP_HOST']; $success = true; if (!setCookie(ID, '1', $expirationTime, '/', $domain, 0)) { $success = false; } if (!setCookie(USERNAME, 'frankkim', $expirationTime, '/', $domain, 0)) { $success = false; } if ($success) { print "setCookie's succeeded"; } else { print "setCookie's failed"; } ?> ------------------------------------------------------------------------ [2003-02-02 13:15:13] frankkim@attbi.com I added: error_reporting(E_ALL); to the script and saw no errors reported. This was not surprising since I have this set in php.ini: error_reporting = E_ALL; display all errors, warnings and notices display_errors = On ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22013 -- Edit this bug report at http://bugs.php.net/?id=22013&edit=1

« previous php.bugs (#31932) next »