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

Reply via email to