Bug #15310 Updated: when use object method call session register doesn't work

From: Date: Fri, 01 Feb 2002 07:22:50 +0000
Subject: Bug #15310 Updated: when use object method call session register doesn't work
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-78739@lists.php.net to get a copy of this message
ID: 15310
Updated by: yohgaki
Old Summary: when use object method call session register doesn't work
Reported By: nail@bowling.nsk.su
Old Status: Analyzed
Status: Feedback
Bug Type: Session related
Operating System: linux
PHP Version: 4.1.1
New Comment:

What do you mean "it has not given result".

If you mean $time does not have value, it's normal.
if $_SESSION['time'] does not have value something wrong.
If you mean you don't see
$test->$mT['TEST']['_SESSION_']['time'] does
not have value, it's your bug.

Please try to be more specific.




Previous Comments:
------------------------------------------------------------------------

[2002-01-31 06:06:48] nail@bowling.nsk.su

I have removed session_register() call and began new session,  but it
has not given result.

------------------------------------------------------------------------

[2002-01-31 05:31:45] yohgaki@php.net

As I changed session manual recently,
NEVER use $_SESSION(or $HTTP_SESSION_VARS) AND
session_register/is_registered/unregister() functions.
(It's not only for 4.1.x but also for 4.0.x)

I warned it already. 

tracked vars and globals are handled inconsistent manner in session
module. 
I really would like to get rid of global var support from session
module for PHP5....

------------------------------------------------------------------------

[2002-01-31 04:50:23] nail@bowling.nsk.su

Following code the shows strange bag.
When function t() called as object method, variable 'time' is not kept
in session.
Register_globals is On.

<?php
session_start();
class Test {
    var $mT = array();
    // this function does not deal with session
    function t()
    {
        reset($GLOBALS);
        while (list($k,$v)=each($GLOBALS))
            $GLOB[$k]=$v;
        $this->mT['TEST'] = $GLOB;
    }
}
$test = new Test;
$test->t(); // comment this line and script will work right
?>
<pre>
<?php
print_r($_SESSION);
$_SESSION['time'] = time();
session_register('time');
echo "\n-------new _SESSION:-----------\n\n";
print_r($_SESSION); echo "\n";
?>
</pre>

------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=15310&edit=1



Thread (5 messages)

« previous php.dev (#78739) next »