1

您能否告诉我当用户会话到期或用户关闭浏览器时如何删除下表中的所有记录。

表名:测试

id  sessions_id     value
1    admin_1         12 
2    admin_1         12 

我知道临时表,但我不想使用它......因为我在创建表的某个时间后无法获取数据。

谢谢 :)

我试过的:

 function logout(){

   //My query to delete the table
    $this->session->sess_destroy();
   redirect('login');

  }

上面的解决方案工作正常,但我想知道如果任何用户没有注销会发生什么......只是简单地关闭窗口。

4

3 回答 3

4

尝试这个:

  • 在表格中添加一timestamp
  • 在每一页上,UPDATE此列带有与当前用户相关的每一行的当前时间戳
  • 使用一个cron调用 PHP 脚本,在该脚本中,您每小时都会查看DELETE时间戳太旧的行。
于 2012-05-24T12:40:23.363 回答
1

快速阅读http://www.tonymarston.net/php-mysql/session-handler.html。它解释了如何在数据库中保存会话并为您提供完整的解决方案。

于 2012-05-24T12:44:08.633 回答
0
   <?php 

  // $sessions_id is your session id

      if(empty($sessions_id) == true ){

    //execute query 

      // for ex   delete from test where sessions_id = '$sessions_id';     



     }



     ?>
于 2012-05-24T13:24:24.707 回答