我正在创建一个登录和注销并注册的网站,但每次我想要注销如何修复它时会出现错误我认为eroor在会话中这个错误让我发疯我做了很多关于修复问题,但我没有得到任何帮助我的解决方案。
<?php
session_start();
session_destroy();
if(isset($_COOKIE['id_cookie'])){
setcookie("id_cookie", "", time()-50000,"/");
setcookie("pass_cookie", "", time()-50000,"/");
}
if(isset($_SESSION['username'])){
echo("we could not log out try again!");
exit();
}else{
header("Location: home.php");
}
?>
答案 0 :(得分:0)
不确定您的错误,但阅读session_destroy会帮助您解决问题。
根据手册的说法,我的猜测是检查if(isset($_SESSION['username'])){
时的错误:
session_destroy()会销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。 要再次使用会话变量,必须调用session_start()。
您永远不会再次启动会话,因此您无法使用会话变量。
此外,为了进一步帮助记录用户,同一页面中的以下内容将有所帮助:
为了完全终止会话,要将用户注销,还必须取消设置会话ID。如果使用cookie来传播会话ID(默认行为),则必须删除会话cookie。 setcookie()可能会用于此。
虽然它不在问题范围内 - 但它会帮助您成功注销脚本。
答案 1 :(得分:0)
session_destroy();
会破坏所有会话,所以我不会按照你的If语句来检查用户名会话吗?
其次,你实际上并不需要使用括号来回显:
echo("we could not log out try again!"); exit();
可以写成:
echo "we could not log out try again!"; exit;
答案 2 :(得分:0)
<?php
session_start();
session_destroy();
if(isset($_COOKIE['id_cookie'])){
setcookie("id_cookie", "", time()-50000,"/");
setcookie("pass_cookie", "", time()-50000,"/");
}
header("Location: home.php");
exit();
?>