views:

174

answers:

2

Hi all, i need a php code that will run a query after a specific session is going to expire,

if(!isset($_SESSION['test'])) query;

something like that but does work with session expire, Thanks

A: 

I would suggest to save the date you created the session in the database and check if the session expires like:

if($db->checkExpiredSession('test') == true) {
  $db->query('...');
}

Just a thought.

jun
+1  A: 

The problem you'll run into: a session doesn't just expire by itself, a session is expired on the next page load if the user waited too long. As there's no communication between browser and server between requests (user action), the server won't know if e.g. the user just closed the browser (or is doing the dishes while the website remains open).

So I guess there's nothing wrong with your code as it'll tell you if the sessin is expired on the next pageload (as long as there is a next pageload :)).

If you really need to make sure, the query runs after a session expired, I guess you'll have to save your sessions to a database and run a "cleanup"-script on each pageload to run your query and get rid of expired sessions. (e.g. save "lastUserAction" and compare that to whatever your session-limit is)

Select0r