php - 无法删除cookie,它仍然显示在其他文件中调用它
问题描述
创建 cookie
$cookie_name = "userw";
$cookie_value = "John due";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
删除 cookie
// set the expiration date to one hour ago
$cookie_name = "userw";
setcookie("$cookie_name", "", time() - 3600);
unset($_COOKIE[$cookie_name]);
$cookie_name = "userw";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
删除后读取cookie
$cookie_name = "userw";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
如果我在未设置的情况下读取文件中的 cookie,则 cookie 不会出现。但是当我再次阅读 cookie 时,它出现了。我在 xampp 中测试它。有没有人对此有任何解决方案?
解决方案
删除 cookie 时,您需要指定与创建它时指定的相同路径(除非您想做非常具体的事情):
尝试这个:
setcookie($cookie_name, '', time() - 3600, '/'); // note the 4th param, '/'
推荐阅读
- java - 在泛型类中实现 compareTo
- c++ - 模板运算符 [] 重载奇怪的 C2676
- python - 为什么我通过 CLI 部署在 IBM CloudFoundry 上的 Flask Web 应用程序突然停止了?
- expo - Expo-speech 在某些 iOS 设备上不起作用
- css - JavaFX/FXML:ImageView 和 BorderPane 内的标签不显示
- angular - 如何获取指令的主机组件实例?
- java - 如何在Java的WHILE循环中检查整数是正数还是负数?
- sql - PostgreSQL:如果列中的值已经存在,则过滤掉行
- r - 在代码中更改所有 ggplot 输出的字体,而不是在每个绘图中更改一次?
- java - Android 操作共享首选项 - 更新值