Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CodeIgniter extend user's session expiration time

Is it possible to extend user's session expiration time in CI. What I want to do is, by default every user's session cookie lasts for example 1 day, but every time user visits the site his session expiration time is extended by one more day.

I don't know if it is a good idea to do this, maybe I should just set cookies life time for like a week and that's it?

like image 546
spacemonkey Avatar asked Apr 08 '10 20:04

spacemonkey


2 Answers

Default session time in codeigniter is

$sess_expiration = 7200; // This is 2 hours

Also you can set $sess_expiration = 0; This means you are setting session for forever.

Actually I could see in codeigniter library Session.php

// Set the session length. If the session expiration is
// set to zero we'll set the expiration two years from now.
if ($this->sess_expiration == 0)
{
     $this->sess_expiration = (60*60*24*365*2);
}
like image 94
Rinto George Avatar answered Sep 19 '22 02:09

Rinto George


I believe what you want is actually the default behavior. Take a look at sess_read() and sess_update() in /system/libraries/Session.php

last_activity for an active session is updated every five minutes.

Session expiration is checked with last_activity + sess_expiration < now

So, for the behavior you want, just set your sess_expiration time to 86400 (one day), and you should be all set.

like image 45
Billiam Avatar answered Sep 18 '22 02:09

Billiam