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...
>>
> 
> 




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to