Skip to main content

Keep php session from expiring when browser is quit



I'm working with a PHP session. It's working nicely, except if I quit my browser and then return to the webpage, the session has expired. How can I prevent this/set an expiration time for the session?




Comments

  1. You can change the configuration of session.cookie_lifetime so that the browser doesn't just throw your session's cookie away when it's closed (you just give it a number of seconds, and it sets the expiration date)...

    // assuming you can't change your php.ini file
    ini_set('session.cookie_lifetime', 3600); // one hour


    ...But how long do you want the session to remain viable? Because another configuration setting you'd need to worry about is session.gc_maxlifetime, which sets (again, in seconds) how long session data is allowed to exist (unchanged, I believe?) before it is considered garbage.

    The default for session.gc_maxlifetime is 1,440 seconds, or about 24 minutes.

    ReplyDelete
  2. Consider the security risks mentioned. to extend the session lifetime,
    you can set the lifetime of the session cookie before starting the session as follows.

    $lifetime=60*60*24*14; //2 weeks in seconds. you can change the time as you wish
    session_set_cookie_params($lifetime, '/');
    session_start();

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.