Re: Sessions: Trigger a new one, Expire an old one
| From: | Jonathan Sharp | Date: | Wed, 16 Oct 2002 03:09:54 +0000 |
| Subject: | Re: Sessions: Trigger a new one, Expire an old one | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-120096@lists.php.net to get a copy of this message | ||
Ok, here is my solution:
I wanted this to be as self contained as possible:
function clean()
{
/* get name of session & find session id */
$name = ini_get('session.name');
$sessid = ( !$_COOKIE[$name] ?
( !$_GET[$name] ?
( !$_POST[$name] ? false : $_POST[$name] ) :
$_GET[$name] ) :
$_COOKIE[$name] );
/* run query now to see if sesion is expired, if yes */
unset( $_COOKIE[$name] );
unset( $_GET[$name] );
unset( $_POST[$name] );
unset( $_REQUEST[$name] );
}
clean();
session_start();
Since _COOKIE/etc needs to be UNSET before session_start is called and re-calling session_start does sqat, the above code (not all of it but general idea) 'finds' the session id (session_id() has no effect until session_start is called) and tests to see if it's expired, if so, it 'kills' all possible locations for session_start() to find an id.
*simple*... (or something like that)
-js
Chris Shiflett wrote:
Yeah, John hinted at the answer there. You just need to make the session ID go away prior to starting the session . Just unset it or set it to the empty string or whatever you want to do. It is probably either $_COOKIE["PHPSESSID"] or $_GET["PHPSESSID"]. Chris John W. Holmes wrote:"Simple" question. If a users session expires or has timed out, how do I 'force' php to generate a new sessionId?Session_start() ?? If there isn't a session id present, it'll create one. ---John Holmes...