【发布时间】:2009-11-10 04:52:08
【问题描述】:
对于 Web 应用程序,我决定将会话变量存储到数据库中。除了注销之外,一切都按我想要的方式工作,我认为使用简单的 session_destroy() 就可以完成这项工作,但事实并非如此。
正如我提到的,所有会话信息都存储在数据库中,但我注意到在调用 session_destroy(); 时它确实从数据库中删除了会话,但没有从服务器中删除。我注意到,如果我不关闭浏览器,每次登录时都会得到相同的会话 ID,因此如果我使用不同的用户名登录,我仍然会得到相同的会话 ID。如何删除服务器会话?
这是我用来销毁会话的类中的一个函数:
function destroy( $id ) {
// Build query
$newid = mysql_real_escape_string($id);
$sql = "DELETE FROM sessions_table WHERE session_id = '{$newid}'";
mysql_query($sql);
return TRUE;
}
有什么建议吗?
【问题讨论】:
-
您是否使用 session_set_save_handler() (php.net/manual/en/function.session-set-save-handler.php) 来更改功能?
标签: php