ID: 27050 Updated by: [EMAIL PROTECTED] Reported By: design at laneforestproducts dot com -Status: Open +Status: Feedback Bug Type: Session related Operating System: Windows 2000 PHP Version: 5.0.0b3 (beta3) New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2004-01-27 11:03:02] design at laneforestproducts dot com 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 ------------------------------------------------------------------------ [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
