php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #27050 Can't Read Cookie From Class Constructor
Submitted: 2004-01-26 11:16 UTC Modified: 2004-02-01 00:11 UTC
Votes:2
Avg. Score:4.0 ± 1.0
Reproduced:2 of 2 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: design at laneforestproducts dot com Assigned:
Status: No Feedback Package: Session related
PHP Version: 5.0.0b3 (beta3) OS: Windows 2000
Private report: No CVE-ID: None
 [2004-01-26 11:16 UTC] 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.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-01-26 20:10 UTC] sniper@php.net
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-27 11:03 UTC] 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-27 15:56 UTC] sniper@php.net
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


 [2004-02-01 00:11 UTC] sniper@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 13:01:30 2024 UTC