ID:               15909
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         Session related
 Operating System: Linux Gnu  2.2.12
 PHP Version:      4.1.2
 New Comment:

I experienced a similar problem (PHP 4.1.2, Linux 2.2.19-6.2.11)

Works:
onepage.php
-----------
session_register("newvar");
$newvar = 123;
header("Location: somepage.php");

somepage.php
------------
echo $_SESSION["newvar"]; //echoes 123

Doesn't work:
onepage.php
-----------
$_SESSION["newvar"] = 123;
header("Location: somepage.php");

somepage.php
------------
echo $_SESSION["newvar"]; //"newvar" isn't set here


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

[2002-03-06 14:56:41] [EMAIL PROTECTED]

Re: [EMAIL PROTECTED] 
FYI, The code I'm working with uses a single session array variable
(with many elements) and a library routine to do page jumps.
Consequently I was able to fix this problem on all my pages by adding
one line of code to the pagejump library routine.

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

[2002-03-06 14:38:42] [EMAIL PROTECTED]

Just wanted to confirm I also experienced this problem after upgrading
to 4.1.2 for the security fix, so it's not an option to go back to an
older version of PHP.

The suggested $_SESSION[S][X] work around fixed my shopping cart but
this is going to be a huge chore to fix the entire site. 

Is there an ETA on this fix?

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

[2002-03-06 13:11:34] [EMAIL PROTECTED]

Several pages that worked in PHP 4.0.2 no longer work in 4.1.2. The
problem is that values added to a global session variable array just
before jumping to another page are not being stored.

For example, on page courses.php the user selects a course from a list.
The code for the course is stored in a session variable $S[event_code],
and the code pagejumps (by calling a library routine that calls
header()) to page course.php, to display data for that particular
course. The problem is, the value $S[event_code] no longer exists when
we get to the second page (course.php).

I can see the value in $S[event_code] if I var_dump($S)  before the
pagejump in courses.php. If I var_dump($S) just after arriving in page
course.php, I see the other contents of the $S array but not
$S[event_code].

Array $S is global and each page begins with
session_register("S");
The update takes place within a function that declares $S as global.

If I replace
$S[event_code] = $event_code;
with
$_SESSION[S][event_code] = $event_code; 
the value is passed.

PHP options enable_track_vars and register_globals are ON,
session.save_handler is files, session.serialize_handler is php.

Thank you.




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


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

Reply via email to