$HTTP_SESSION_VARS only gets populated when you load another page. Or refresh the current one. To use your example again...
<?php function reg() { $test = 13; session_register("test"); echo "in reg(), test=<$test><br>"; } global $HTTP_SESSION_VARS; session_start(); $test = 12; reg(); if (session_is_registered("test")) { $tt = $HTTP_SESSION_VARS["test"]; echo "session variable test=<$tt><br>"; } else echo "You really don't know what you're doing, do you?<br>"; ?> Run this script, and it will give the output in reg(), test=<13> session variable test=<> But... Refresh the page, and you should see: in reg(), test=<13> session variable test=<12> Because $HTTP_SESSION_VARS gets populated. Its something to do with HTTP headers I think - can't remember exactly why, but I know what happens. HTH, ========================================== Richard Black Systems Programmer, DataVisibility Ltd - http://www.datavisibility.com Tel: 0141 435 3504 Email: [EMAIL PROTECTED] -----Original Message----- From: Richard Fox [mailto:[EMAIL PROTECTED]] Sent: 04 March 2002 15:26 To: [EMAIL PROTECTED] Subject: RE: [PHP] Session variable scope - surprise! OK, but then how do you explain: <?php function reg() { $test = 13; session_register("test"); echo "in reg(), test=<$test><br>"; } global $HTTP_SESSION_VARS; session_start(); reg(); if (session_is_registered("test")) { $tt = $HTTP_SESSION_VARS["test"]; echo "session variable test=<$tt><br>"; } else echo "You really don't know what you're doing, do you?<br>"; ?> This still gives me the output: in reg(), test=<13> session variable test=<> Aaargh! -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php