PHP 4.0 Bug #8772 Updated: user level session storage fails when register_globals off

From: Date: Thu, 25 Jan 2001 19:02:23 +0000
Subject: PHP 4.0 Bug #8772 Updated: user level session storage fails when register_globals off
Groups: php.dev 
Request: Send a blank email to php-dev+get-45001@lists.php.net to get a copy of this message
ID: 8772 User Update by: serge@freezefotoz.com Status: Open Bug Type: *Session related Description: user level session storage fails when register_globals off OK, here is some more info.... I just installed the Zend IDE and did some debugging. What I noticed was the following using this test code: <?php session_register("myvar"); $HTTP_SESSION_VARS['myvar'] = "VarVar"; print "This is a test"; exit; ?> if register_globals is off (Note: setting this in a virtual server with php_flag register_globals off) session_register("myvar") calls open_session in my session handler, and then calls read_session in the handler I assign a value to $HTTP_SESSION_VARS['myvar'] upon exit; the following happens close_session is called in the session handler and thats the end! ---> write_session was never called? #### if register_globals is on (Note: setting this in a virtual server with php_flag register_globals on) session_register("myvar") calls open_session in session handler, and then calls read_session in the handler. I assign a value to $HTTP_SESSION_VARS['myvar'] upon exit; write_session is called and the value passed is !myvar| <---- missing the value of $myvar. close_session is called and thats that. Questions: In the first example, why is write_session never called? In the second example, why does !myvar| NOT have the value I assigned to it like so $HTTP_SESSION_VARS['myvar'] = "VarVar"; Thanks, Serge Previous Comments: --------------------------------------------------------------------------- [2001-01-23 17:50:54] serge@freezefotoz.com What I have noticed is when I have register_globals on and I run this script, a record is added to the session table as expected. <?php session_register("test"); $HTTP_SESSION_VARS['test'] = "blabla"; ?> but when I have register_globals off and run this script, upon script completion there is NO session record in the table at all? Serge --------------------------------------------------------------------------- [2001-01-23 17:13:10] serge@freezefotoz.com Still does not work. As stated before, when I check the database, the data field is empty. phpinfo.php <?php session_register("test"); $HTTP_SESSION_VARS['test'] = "blabla"; phpinfo(); ?> <a href="/test.php">test</a> test.php <?php print "session var = " . $HTTP_SESSION_VARS['test']; ?> Config file <VirtualHost 192.168.0.7> ServerAdmin webmaster@phpdev1.globalbeach.com DocumentRoot /www/medialib-dev/htdocs ServerName medialib-dev.globalbeach.com ErrorLog /www/medialib-dev/logs/error_log CustomLog /www/medialib-dev/logs/access_log common php_flag register_globals off php_flag track_vars on php_value auto_prepend_file "/usr/local/apache/conf/pgsql_session_handler.php" php_value include_path "/www/medialib-dev/libs" php_value open_basedir "/www/medialib-dev" </VirtualHost> --------------------------------------------------------------------------- [2001-01-23 16:19:13] cynic@php.net it won't print the contents this way. you must use either echo "session var test = {$HTTP_SESSION_VARS[test]}"; or echo "session var test = " . $HTTP_SESSION_VARS[test]; if this solves your problem, close the bug, please. --------------------------------------------------------------------------- [2001-01-23 13:49:50] serge@freezefotoz.com Yes I did, I followed the examples described in the latest documentation. session_register("test"); $HTTP_SESSION_VARS['test'] = '12345'; when I try to print on another page, echo "session var test = $HTTP_SESSION_VARS[test]"; it comes up empty...? When I look in the database, I have a session record, but the data is empty? Serge --------------------------------------------------------------------------- [2001-01-18 06:22:05] sniper@php.net Feedback by Sascha Schumann <sascha@schumann.cx>: ------------------------------------------------- And did you assign your data to $HTTP_SESSION_VARS["foo"] instead of $foo? The user level storage module gets exactly the same set of data as the other modules. In fact, there is no distinction in the session module as to how the data is stored. - Sascha --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. Full Bug description available at: http://bugs.php.net/?id=8772

« previous php.dev (#45001) next »