设置并调用 cookie 后收到错误



可能的重复项:
在 setcookie() 之后立即访问 $_COOKIE

所以我使用以下代码为我的网站添加多语言功能:

if(isset($_GET['lang']) && $_GET['lang'] != ""){
setcookie("lang", $lang, time()+360*360*3600);
}elseif(!isset($_COOKIE["lang"]) || $_COOKIE["lang"] == ""){
setcookie("lang", "en", time()+360*360*3600);
}
include 'lang/'.$_COOKIE["lang"].'.php';

现在,当此代码第一次执行时,它无法找到'$_COOKIE["lang"],因此无法打开文件,但是在我刷新页面后,它加载得很好。我想知道我做错了什么?

只有在您发出请求时才会设置 cookie。

这就是它的工作原理(它与每个请求一起发送)。而且由于您仍在相同的请求中,因此它根本不存在。

但您可以自己设置:

if (isset($_GET['lang']) && $_GET['lang'] != "") {
    $_COOKIE['lang'] = $lang;
    setcookie("lang", $lang, time()+360*360*3600);
} elseif ...

这可能是您正在寻找的解决方法。

相关内容

最新更新