> -----Original Message----- > From: David Christopher Zentgraf [mailto:deceze@xxxxxxxxx] > Sent: 31 October 2007 08:04 > To: PHP > Subject: Re: Stopping objects from auto-serializing > > > After some more playing around and a lot of print_r($SESSION)'s: > > This specific PHP configuration seems to replace every entry in > $_SESSION if a variable with the same name is used in the > main script > with that variable. > > I.e. > session_start() // $_SESSION["foo"] is now "bar" > $foo = "12345"; > $var = "xxxx"; > > function test() { > $foo = "67890"; > } > test(); > > After execution finished $_SESSION["foo"] is now "12345", but > there's > no $_SESSION["var"]. > What's going on here? That's exactly the behaviour caused by register_globals being on -- session_start() takes each $_SESSION["var"] and makes the equivalent global $var be a reference to it. Other variables only get mirrored in $_SESSION if you session_register() them. (track_vars, mentioned previously, is a red herring -- it's been permanently enabled since 4.0.something.) Cheers! Mike ------------------------------------------------------------------------ ---------------- Mike Ford, Electronic Information Services Adviser, JG125, The Headingley Library, James Graham Building, Headingley Campus, Beckett Park, LEEDS, LS6 3QS United Kingdom Tel: +44 113 812 4730 Fax: +44 113 812 3211 To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php