Hi Derick

Doesn't this seem counter-intuitive? Can we improve the implementation
somehow?

Regards, John

<[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> ID: 14540
> Updated by: derick
> Reported By: [EMAIL PROTECTED]
> Status: Bogus
> Bug Type: Session related
> Operating System: linux 2.2.18 - glibc 2.1.3
> PHP Version: 4.1.0
> New Comment:
>
> Oops,
>
> here is the explanation:
>
> the function 'session_register()' 'registers' a variabele to a session. In
other words, when the script ends, the value of this variabele is stored
with the session.
>
> On the first run $PIPPO is empty (of course), and it is set to 'ONE'.
> At the end of the script, the value is stored in the session file.
>
> At the second run, (PIPPO is still registered to the session, so
session_register has no effect), empty($PIPPO) evalutes to TRUE again,
because the value is in $_SESSION['PIPPO'], and thus PIPPO is set to 'ONE'
again.
> At the end of the script, the value of $PIPPO ('ONE') is saved to the
session again.
>
> You can see more of this behavior, if you set error_reporting(E_ALL) to on
in the script.
>
> Hope this explained it,
> regards,
>
> Derick
>
> Previous Comments:
> ------------------------------------------------------------------------
>
> [2001-12-16 05:15:53] [EMAIL PROTECTED]
>
> Hello,
>
> let me explain this,
>
> ------------------------------------------------------------------------
>
> [2001-12-15 22:32:36] [EMAIL PROTECTED]
>
> There is something I don't understand.
>
> I've updated to v4.1.0 and noticed that the recommended
> configuration defaults register_globals to *Off*. I
> understand the security reasons behind this choice. I've
> tried to run one of my projects with the new interpreter
> and the recommended settings (register_globals=Off). After
> resolving a plenty of warnings, I noticed that things were
> not working as I expected.
>
> This is a sample code:
>
> <?
>     session_register('PIPPO');
>     if (empty($PIPPO)) {
>         $PIPPO = "ONE";
>     } else {
>         $PIPPO = "TWO";
>     }
>
>     $sidfile = "/tmp/sess_" . $_COOKIE['PHPSESSID'];
>
>     echo "Session file $sidfile contains: <pre>";
>     readfile($sidfile);
>     echo "</pre>";
>
>     echo "The value is: $PIPPO<br>";
> ?>
>
>
> When I run and reload the script I get:
>
>     Session file /tmp/sess_87...blahblah...3e contains:
>
>     PIPPO|s:3:"ONE";maxrating|N;
>
>     The value is: ONE
>
> Why the first run sets the session variable to "ONE" and
> the second run can't get it's value? In the latter case I
> guess the answer is: "because you have to access it through
> $HTTP_SESSION_VARS", but ... shouldn't it had to be the
> same in the former case?
>
>
> ------------------------------------------------------------------------
>
>
>
> Edit this bug report at http://bugs.php.net/?id=14540&edit=1
>



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to