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

From: Date: Thu, 25 Jan 2001 19:06:12 +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-45002@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 P.S. Whith register_globals on, this works fine. session_register("myvar"); $myvar = "VarVar"; exit; and $myvar gets registerd with its value by the handler just fine. Serge Previous Comments: --------------------------------------------------------------------------- [2001-01-25 14:02:23] serge@freezefotoz.com 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 --------------------------------------------------------------------------- [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 --------------------------------------------------------------------------- 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 (#45002) next »