【发布时间】:2019-02-14 06:23:03
【问题描述】:
我正在使用以下代码设置 Cookie:(admin.php)
if ($_POST['stayLoggedIn'] == '1') {
setcookie("id", $row['id'], time() + 60*60*24*365);
}
header("Location: addtip.php");
我无法取消设置 cookie,我已经搜索了该网站,以下代码应该是正确的,但它不起作用;(admin.php)
if (array_key_exists("logout", $_GET)) {
unset($_SESSION);
setcookie("id", "", time()-60*60);
$_COOKIE["id"] = "";
}
使用“loggedinpage”上的以下代码取消设置测试 cookie,如果 cookie 未设置(addtip.php),该代码将返回到管理员登录页面
session_start();
if (array_key_exists("id", $_COOKIE)) {
$_SESSION['id'] = $_COOKIE['id'];
}
if (array_key_exists("id", $_SESSION)) {
echo "<a href='admin.php?logout' class='btn btn-danger btn-logout'>Log Out</a>";
} else {
header("Location: admin.php");
}
【问题讨论】:
-
如何检查 cookie 是否未设置?
-
@JohnConde 更新了我的问题
-
您刚刚添加到需要重定向才能访问的单独页面上的代码吗?直到下一个页面加载,cookie 才会真正取消设置。届时它将不再存在并且不会发送到服务器。
-
附带说明,如果您想让 cookie 过期,请将日期设置为非常远的过去。它可以解决服务器和浏览器之间的时间问题。并使用
strtotime()来做,因为它比time()-60*60更清晰。setcookie("id", "", strtotime('-1 year')); -
@JohnConde 我在问题的括号中添加了我正在使用的文件名