2014-06-21 29 views
0

即时通讯在我的一个小测试端上销毁我的会话时遇到了麻烦。注销/销毁会话时出现的问题

我可以从我的code_login.php文件和header()登录到需要登录的其他页面。但是,当我退出时,即使我退出了,有时也可以返回该页面。

(在session_start()是我的所有网页的顶部)

这是我的登录代码:

$res = $db->query($sql); 
$num = $res->num_rows; 

if ($num == 1) { 
    $_SESSION['user'] = array(
     'username' => $username; 
    ); 
} 

这里是注销:

session_start(); 
$_SESSION = array(); 
session_destroy(); 
header('LOCATION: index.php?loggedOut'); 

这是顶我的页面需要登录

session_start(); 
if (isset($_SESSION['user'])) { 
    require some stuff; 
} else { 
    header('LOCATION: index.php?loginNeeded'); 
} 

但是有时候我仍然可以在登录后返回到登录页面。

+0

这可能会带给你一些快乐 http://stackoverflow.com/questions/3948230/best-way-to-completely-destroy-a-session-even-if-the-br owss-is-not-closed – Matt

回答

0

session_start();

要设置每个页面或取消会议,以及阅读会议

数据

+0

检查您的浏览器是否支持cookies以及您的php.ini是否支持使用cookie的会话 – Ashish

0

在登录的代码页的顶部添加session_start();插入:

session_start(); 
$res = $db->query($sql); 
$num = $res->num_rows; 

if ($num == 1) { 
    $_SESSION['user'] = array(
     'username' => $username; 
    ); 
}