ID:               27050
 User updated by:  design at laneforestproducts dot com
 Reported By:      design at laneforestproducts dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Session related
 Operating System: Windows 2000
 PHP Version:      5.0.0b3 (beta3)
 New Comment:

Yes, I am using php 5... Don't worry, it only exists in our dev sandbox
=) But I am very excited at this new turn for php!

About Kill Session: I meant to close your browser and then reload the
page to get a new session, thus firing the creation of a new lfp_user
object. I would expect a new phpsessid to be generated, and the
lfp_guid to be found on the client's box when the object is
instantiated. Instead, the lfp_guid cookie is never found. The print_r
is there as the lazy approach to actually checking your cookies: you
can open the page then refresh to explode the cookie array onto your
screen, although I suppose lfp_user does some echo's too.

Thanks for the quick response! ~Andrew


Previous Comments:
------------------------------------------------------------------------

[2004-01-26 20:10:51] [EMAIL PROTECTED]

First of all, are you really using PHP 5? Have you tried PHP 4.3.4 ?

And what do you mean with 'kill session' ??


------------------------------------------------------------------------

[2004-01-26 11:16:22] design at laneforestproducts dot com

Description:
------------
With the code below, the expected function is that a returning user
with the 'lfp_guid' cookie will be recognized when the cookie is read.
However, the lfp_guid is never found  again after creation and a new
lfp_guid is created at the beginning of each session. 


Reproduce code:
---------------
class lfp_user {
        var $guid;
        function lfp_user() {
                if (isset($_COOKIE['lfp_guid'])) {
                        $this->guid =$_COOKIE['lfp_guid'];
                } else {
                        $this->guid = md5(uniqid(rand(0,1)*100,true));
                        
setcookie("lfp_guid",$this->guid,time()+60*60*24*365*2,"","127.0.0.1",true);
                }

                echo "LFP_USER.constructor: _COOKIE['lfp_guid']==
'".$_COOKIE['lfp_guid']."'<br>";
                echo "LFP_USER.constructor: GUID == ".$this->guid."<br>";
                
                //echo isset($_COOKIE['lfp_guid'])."<br>";
        } // end constructor
} // end class
session_start();
if (empty($_COOKIE['PHPSESSID'])) {                     
                $_SESSION['lfp_user'] = new lfp_user(); 
}       
// kill session and reload page again to see nothing in cookie:
print_r($_COOKIE);

Expected result:
----------------
Since the lfp_guid cookie is actually set on the user's machine,
$_COOKIE would access this list and store it in the new object.


Actual result:
--------------
A new lfp_guid is created and set on the user's machine no matter what.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=27050&edit=1

Reply via email to