2015-05-12 124 views
1

赫斯是logout.php注销脚本PHP注销和会话问题

unset($_SESSION['user']['id']); 
     session_unset(); 
     session_destroy(); 
     echo '<script type="text/javascript">window.location="login.php"</script>'; 

我的问题是注销后,当我点击浏览器的后退按钮我重定向回index.php页。显示index.php一段时间后,它被重定向到login.php。我不明白为什么它重定向到index.php页面。我不想在用户注销后的一秒钟内向用户显示任何页面/内容。

回答

1

不需要unset($_SESSION['user']['id']);session_unset();session_destroy()将做到这一切。试着用 -

session_destroy(); 
header('location:logout.php'); 
exit; 
1

那么,您的用户将不得不使用javascript加载该页面,并且javascript正在执行重定向。你想要的是在PHP中发出一个头来立即强制重定向。但是,如果你已经放了一个头,你不能再做一次,所以你需要包含另一个PHP文件和你想要显示的输出,然后die()。通过Javascript来做到这一点,在window.location()调用生效之前,总会有一个页面加载,并且很多弹出窗口拦截器的用户甚至可能无法正确地执行javascript重定向。

2

检查条件的每个页面上登录

if(!isset($_SESSION['user'] && !isset($_SESSION['user']['id'])){ 
    header('location:login.php') ; 
} 
0

尝试使用后。

header ("Location: login.php");