Geoff Soper wrote:
> I'm working on an authentication system in which it's possible that a user
> might be requested to log-in as a result of submitting a form if the
> inactivity timeout is exceeded. In order that they don't lose the
> information in the form I would like to capture this information ($_RESULT),
> serialise it and store it in their session. After they've successfully
> logged in I would like to retrieve this information and put it back in
> $_RESULT so the user can carry on with what they were doing. Is $_RESULT
> meant to be writable in this wayand is there any reason why this isn't a
> good idea?
I assume by $_RESULT you mean $_REQUEST?
To store it:
foreach ($_REQUEST as $key=>$value) {
$_SESSION['REQUEST'][$key] = $value;
}
This will simply store all the $_REQUEST variables in the session as the
array $_SESSION['REQUEST']
Then to get it back:
foreach ($_SESSION['REQUEST'] as $key=>$value) {
$_REQUEST[$key] = $value;
}
Or, if they fail the login, destroy the array:
unset($_SESSION['REQUEST']);
If you don't want to store all the $_REQUEST vars but only some of them
you can just use a switch-statement before storing them.
foreach ($_REQUEST as $key=>$value) {
switch ($key) {
case "var_to_keep":
case "another_var_to_keep":
case "yet_another_var_to_keep":
$_SESSION['REQUEST'][$key] = $value;
break;
default:
break;
}
}
Just make sure you call session_start(); on the pages where you want to
use this, or the $_SESSION variables won't be carried over.
Hope that helps :)
Roy W. Andersen
--
ra at broadpark dot no /
http://roy.netgoth.org/
"Hey! What kind of party is this? There's no booze
and only one hooker!" - Bender, Futurama