早上好,
我有这样的问题。我想以用户选择的 cookie 语言存储。局部变量中的值仍然改变,但 cookie 中的值始终相同。即使我总是删除 cookie 然后我再次创建它,存储在 cookie 中的值是错误的,我的本地是好的。这是我的代码:
<?php
if (isset($_GET['lng'])) {
$lng = $_GET['lng'];
if (($lng != "en") && ($lng != "de")) {
$lng = "en";
}
} else {
if(!isset($_COOKIE['lang'])) {
$lng = "en";
} else {
$lng = $_COOKIE['lang'];
}
}
if(isset($_COOKIE['lang'])) {
setcookie("lang", $_COOKIE['lang'], time()-10); //here I try to remove cookie and then create another
}
setcookie("lang", $lng, time()+5);
print_r($_COOKIE);
echo $lng;
?>
print_r 将始终返回我的主要语言 (en),即使在变量 $lng 中有 de。我认为,只会有愚蠢的问题,但我无法解决它。由于官方php网站上写的问题,这条删除线(我评论过)在那里:
小心在子目录中使用相同的 cookie 名称。设置一个简单的cookie
setcookie("region", $_GET['set_region']);
在根 / 中,例如在这种情况下 /admin/ 将创建 2 个具有不同路径的 cookie。在读取 cookie 时,无论路径如何,都只会读取第一个。
我以为我有类似的问题。但这并没有解决我的问题,即使 5 秒后的 cookie 过期,cookie 也会再次写入错误的“en”值。
谢谢你的回答