RE: [PHP] Stopping objects from auto-serializing
| From: | Ford, Mike | Date: | Wed, 31 Oct 2007 11:24:58 +0000 |
| Subject: | RE: [PHP] Stopping objects from auto-serializing | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-263850@lists.php.net to get a copy of this message | ||
> -----Original Message-----
> From: David Christopher Zentgraf [mailto:deceze@gmail.com]
> Sent: 31 October 2007 08:04
> To: PHP
> Subject: Re: [PHP] 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