我的站点使用一个简单的登录系统,它为用户名和登录会话创建一个 cookie。如果有人访问 home.php 并且登录会话设置为已登录,则他们将被推送到已登录区域。否则,他们使用简单的表单和处理程序页面登录。要注销用户,请单击将他们带到 logout.php 的链接,其中包含以下代码:
<?
session_start();
setcookie(username, $username, time()-360000);
session_start($_SESSION['login']);
$_SESSION["Login"] = "no";
header("Location: home.php");
session_destroy();
?>
这是正在发生的事情。单击注销按钮的用户会被正确踢出到 home.php 页面。如果他们刷新页面,它们将保留在 home.php 页面上。目前看来还不错。
但是,如果他们离开主页,则会进入登录区域。如果他们转到登录区域的 url,他们不会被踢出(因为会话检查脚本确认会话值设置为已登录)。
我傻眼了。我无论如何都不是 PHP 专业人士——我做错了什么???