未在php中删除cookie值
我是php新手,但我有两年的asp.net经验。当我调用logout.php时,它不会删除cookie值未在php中删除cookie值,php,cookies,Php,Cookies,我是php新手,但我有两年的asp.net经验。当我调用logout.php时,它不会删除cookie值 <?php if (isset($_COOKIE['C_username'])) { unset($_COOKIE["C_username"]); unset($_COOKIE["C_password"]); setcookie("C_username", '', time() - 3600); setcookie("C_password", '', time(
<?php
if (isset($_COOKIE['C_username'])) {
unset($_COOKIE["C_username"]);
unset($_COOKIE["C_password"]);
setcookie("C_username", '', time() - 3600);
setcookie("C_password", '', time() - 3600);
}
echo "<script>alert('".$_COOKIE["C_username"]."');</script>" ; //Here the cookie value is found.
header( 'Location: ../index.php');
?>
在浏览器重新加载页面之前,cookie不会被清除,因此如果将javascript更改为在浏览器上实际查找cookie,而不是使用PHP(服务器上)版本的cookie,则可能会得到更可预测的结果
还请记住,Cookie和header()
语句必须在将任何其他数据发送到浏览器之前运行,因此您的代码无论如何都应该生成错误,因为您的header()
语句在echo
语句之后
所以试试看
<?php
if (isset($_COOKIE['C_username'])) {
setcookie("C_username", '', time() - 3600);
setcookie("C_password", '', time() - 3600);
header( 'Location: ../index.php');
exit;
}
echo '<script>alert(document.cookie);</script>";
?>
我尝试不使用setcookie行。但是没有用,因为我看到你正在使用cookies作为登录系统,cookies有一种挥之不去的方式。我建议不要这样做,因为安全问题(很容易被黑客攻击)。会话更安全、更易于管理(例如,session\u destroy()
)一些关于-功能的阅读材料我强烈建议您阅读一些有关cookie和会话的内容,并确保您确实想要/需要使用cookie。部分内容如下:-