if (!($savedid == $current_session_id)) {
// 3. hijack then destroy session specified.
session_id($savedid);
session_start();
session_destroy();
session_commit();
if (session_destroy()) { //eror here
header("Location: ../../../index.php");
exit;
}
// 4. restore current session id. If don't restore it,
// your current session will refer to the session you just destroyed!
session_id($current_session_id);
session_start();
session_commit();
}
我想基于其ID销毁会话,但我收到错误Trying to destroy uninitialized session in
如何使用会话ID销毁会话?
更新
我看到我只是想要一个条件说如果会话被销毁我想直接登录页面..如何检查?
我希望它像例如用户登录pc1然后登录pc2 pc1将被定向登录
答案 0 :(得分:0)
如果你看这里:
session_start();
session_destroy(); // Destry
session_commit();
if(session_destroy()){ // Again
您注意到您正试图两次销毁会话
第二次调用session_destroy()
会话已经被破坏且不存在。
这就是你收到错误的原因。只需删除对session_destroy()
的第一个电话。
修改:您不需要检查(会话是否已销毁),因为您已将其销毁,即您可以确定其中包含'现在没有会议。 (直到你拨打session_start()
)
您可以通过调用session_id()
来检查会话是否存在 - 如果没有会话,则返回空字符串:
if(!session_id()) { /* No session. Redirect! */ }
else { /* There is a session. Continue. */ }