Tony Furnivall wrote:
I now have that part of things working fine. However, because there is
an implicit exit; after issuing the call to header (), I'm uncertain if
the $_SESSION variables are being set properly.
When I trace them at the end of one page they are all there
($_SESSION['userid'] = $userid; $_SESSION['badgename']=$badgename;), but
when I examine the $_SESSION array at the start of the next page, the
variables do not exist. My guess is that by short-circuiting any nrmal
end-of-script processing, I may be bypassing the write of the $_SESSION
array to the temporary file. This feels like forcing a buffer-flush when
working with low-level disc IO. Is there any known reason for $_SESSION
variables to disappear in such circumstances?
Does anyone have any other ideas?
I use the header() redirect frequently in combination with sessions. What I
found to be a mandatory must at all times is to execute session_start(); at
the very beginning of any script working with the session variable. Do that
before including any files, setting anything, or executing any code. That
always did the trick for me. Doing it a few lines further down when it would
make logical sense often caused that the session was gone, even when
referencing the session_ID.
Also, and I think that is in one of the annotations on php.net for header(),
when using the header() redirect explicitly write the values to the session
(of course I forgot the command for that). At times the redirect is completed
before the session is written out and with a new request coming in the PHP
interpreter gets confused as to what belongs where.
David
_______________________________________________
New York PHP User Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
http://www.nyphp.org/show_participation.php