php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #15310 when use object method call session register doesn't work
Submitted: 2002-01-31 04:50 UTC Modified: 2002-07-02 01:00 UTC
Votes:8
Avg. Score:4.2 ± 1.0
Reproduced:4 of 5 (80.0%)
Same Version:1 (25.0%)
Same OS:3 (75.0%)
From: nail at bowling dot nsk dot su Assigned:
Status: No Feedback Package: Session related
PHP Version: 4.1.1 OS: linux
Private report: No CVE-ID: None
 [2002-01-31 04:50 UTC] nail at bowling dot nsk dot 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>

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-01-31 05:31 UTC] 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 06:06 UTC] nail at bowling dot nsk dot su
I have removed session_register() call and began new session,  but it has not given result.
 [2002-02-01 02:22 UTC] yohgaki@php.net
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.


 [2002-02-01 02:49 UTC] nail at bowling dot nsk dot su
I mean value of $_SESSION['time'] lost at refresh.
When I comment line $test->t() script works correctly:

Array
(
    [time] => 1012549372
)

------------------new _SESSION:--------------------------

Array
(
    [time] => 1012549373
)

When I remove comment the output is like this (don't forget begin new session):

Array
(
)

------------------new _SESSION:--------------------------

Array
(
    [time] => 1012549537
)
 [2002-04-14 00:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2002-04-14 08:12 UTC] sniper@php.net
reopen..the feedback _was_ given.

 [2002-06-01 11:43 UTC] mfischer@php.net
Somehow the responses got out of sync.

Please a) try a newer version of PHP (we're at 4.2.1) and b) try a new, self-contained example with the suggestions given.
 [2002-07-02 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2002-07-25 23:31 UTC] bemore15 at yahoo dot com
I have this bug on Windows 2000 PHP 4.2.1.

$member = $auth->create_member_object($login, $password);
$_SESSION["member"] = $member;
$member->init();

...
$member->init() redirects the session to another page
That page starts:

<?

require ("includes/common.php");
$member = $_SESSION["member"];

...
I have this bug regardless of the order of the following lines:

require ("includes/common.php");
$member = $_SESSION["member"];
session_start()

...
The output is:
Notice: Undefined index: member in [file].php on line 4
 [2007-10-12 19:39 UTC] dharmesh_radadiyaa at hotmail dot com
what is meaning of session?
what is meaning of register?
what is meaning of cookies?
 [2007-10-12 19:41 UTC] dharmesh_radadiyaa at hotmail dot com
what is meaning of session?
what is meaning of register?
what is meaning of cookies?
 [2008-04-09 12:33 UTC] uriiniix at gmail dot com
The problem still here. I wonder why you haven't fixed yet! 6 years passed!!!! 

The problem is next: 
I have 3 files:

------ session.php ----------

class Session {
 
  function Session()
  {
      session_start();
  }

  function RegObject($object)
  {
     session_register('object_instance');
     $_SESSION['object_instance'] = $objects;
  }

  function GetObject()
  {
     return $_SESSION['object_instance'];
  }
}


-------- addObject.php --------------

  $session = new Session();
  $obj = new ObjectClass();


  $session->RegObject($obj);



--------- getObject.php -------------

  $session = new Session();
  $obj = $session->GetObject();

  print ">>>".$obj; // Here as output should be error that ObjectClass could not be converted to string, but only ">>>" printed


The root of the problem seams in accessing $_SESSION.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 12:01:31 2024 UTC