#22013 [Opn]: setcookie does not work on Mozilla
| From: | frankkim at attbi dot com | Date: | Sun, 02 Feb 2003 19:48:21 +0000 |
| Subject: | #22013 [Opn]: setcookie does not work on Mozilla | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-31895@lists.php.net to get a copy of this message | ||
ID: 22013
User updated by: frankkim@attbi.com
Reported By: frankkim@attbi.com
Status: Open
Bug Type: HTTP related
Operating System: Windows
PHP Version: 4.3.0
New Comment:
$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.
Previous Comments:
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
[2003-02-02 12:57:55] msopacua@php.net
Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php
If you can provide more information, feel free to add it
to this bug and change the status back to "Open".
Thank you for your interest in PHP.
your script contains errors: $this is not an object.
Add:
error_reporting(E_ALL);
in line 1 to see if there's anything else reported.
------------------------------------------------------------------------
[2003-02-02 12:35:33] frankkim@attbi.com
Today I upgraded from PHP 4.2.2 to PHP 4.3. I am using Apache 2.0.43
on Windows with PHP CGI.
After doing this upgrade, setcookie() stopped working for me using
Mozilla 1.3a though it continued to work using IE. setcookie() was
working for me with both browsers before the upgrade.
Here is a script that illustrates the bug.
<?php
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, $this->id, $expirationTime, '/', $domain, 0)) {
$success = false;
}
if (!setCookie(USERNAME, $this->username, $expirationTime, '/',
$domain, 0)) {
$success = false;
}
if ($success) {
print "setCookie's succeeded";
} else {
print "setCookie's failed";
}
?>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22013&edit=1