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