oh, i forgot to mention, i create new session id on
each login, and pass it on in the url, something like
/page.php?sess=$sess_id

If you want, you could also assign the user's ip with the current session
for a little higher security, i havent bothered as i feel this is safe
enough.

/Martin

> -----Original Message-----
> From: Martin Lindhe 
> Sent: Wednesday, September 12, 2001 5:34 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [PHP] how to set session expiration 
> 
> 
> > hello everyone,
> > 
> >   how can i set the expiration of my sessions with or without 
> >   the cookies enabled? say if a user idles for some time, the 
> >   session will now expire.
> > 
> > TIA!
> > jessie
> 
> I'm using a solition that's something like this:
> 
> 
> first, each time a user logs in to the site, a timestamp is added
> to his user entry in the database.
> 
> then, at top of each page view, you call a function like this
> 
> $username=getUserName($db_handle,$sess_id); //$sess_id is my 
> own created 30
> char-random letter string
> if(!$username) { echo "You're not logged in, die!"; die; }
> 
> This function returns the username assigned with the current 
> session id,
> and also checks wether last timestamp is older than X 
> minutes, if it's not,
> it updates it, if it is, it throws the user out.
> 
> Here's the function (60*20 gives user max 20 minutes time of 
> idling, then
> he/she must log in again):
> --snip--
> function getUserName($db,$sessionID) {
>       $query_idd = mysql_query("SELECT * FROM tblUsers WHERE
> ID='$sessionID'", $db);
>       if (mysql_num_rows($query_idd) == 0) {
>               return "";
>       } else {
>               $row = mysql_fetch_array($query_idd);
>               $diff = time() - $row["lastlogin"];
>               if ($diff > (60*20) ) { echo "Connection timed out<br>";
> die; }
>               $newstamp = time();
>               $updatestamp = mysql_query("UPDATE tblUsers SET
> lastlogin='$newstamp' WHERE username='".$row["username"]."'", $db);
>               return $row["username"];
>       }
> }
> --snip--
> 
> 
> and here's the function i use to create a random id:
> function getRandomID($db,$table) {
>       srand((double)microtime()*1000000);
>       do {
>               $b="";
>               for($a=0; $a<30; $a++) {
>                       $tmp=rand(0,2);
>                       switch($tmp) {
>                               case 0: $b.=chr(rand(97,122)); 
> break; //a-z
>                               case 1: $b.=chr(rand(65, 90)); 
> break; //A-Z
>                               case 2: $b.=chr(rand(48, 57)); 
> break; //0-9
>                       }
>               }
>       } while (mysql_query("SELECT * FROM ".$table." WHERE
> ID='$b'",$db)===TRUE);
>       return $b;
> }
> 
> hope this helps!
> 
> /Martin
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: 
> [EMAIL PROTECTED]
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to