#22013 [Opn->Bgs]: setcookie does not work on Mozilla with localhost as domain
| From: | sniper@php.net | 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