Re: $_SESSION variable gets lost on FORM action
| From: | Nuno Oliveira | Date: | Tue, 16 Jan 2007 20:42:45 +0000 |
| Subject: | Re: $_SESSION variable gets lost on FORM action | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-247177@lists.php.net to get a copy of this message | ||
David Giragosian wrote:
On 1/16/07, Nuno Oliveira <dreasi0n.php.net@gmail.com> wrote:Hi Davis, thanks for the reply. I think that I've found the problem... But if you (or anyone else) can confirm I would appreciate. Sometimes in my code I use the Header('Location: index.php?var=value'); and I've found out (I think) that when one of these headers are executed by PHP, the rest of the script gets executed. I'm thinking that this is the problem because I've eliminated all the occurrences where the SESSION var was cleared until only one exists and it was after a Location Header. I've put an exit(); after the header and the problem was gone... :) Is this the correct PHP/HTML behavior or is there another problem? Am I supposed to put an exit(); after a header "Location" to make sure that no more code gets executed? ThanksHi, I'm working on a website and one of the features that I've implemented so far is the user timeout. Every time that a user browses to a different page, the variable named $_SESSION['user']['lastactive'] is updated to the current time. However, before that, my PHP scripts check if the session for this user had timed out or not... The script that checks that is named "session.php" and it is included in every file. If it detects a timeout, it sets a variable $_SESSION['form']['errors'] to a string ('Your session has expired... Bla, bla, bla...') and then redirects to the login.php and the user will see that he his being asked to login again for the reason displayed. Everything works great except in one situation... If the timeout period happens when the user is filling a form, the action that it executes (process.php) will also include session.php and it sets the error string but when it redirects to login.php the $_SESSION['form']['errors'] variable is empty...You must be unsetting the individual $_SESSION['form']['errors'] variable or the entire $_SESSION array somewhere in there. David