所以我使用下面的代码为我的网站添加多语言功能:
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"]来执行此代码时,无法打开文件,但是当我刷新页面后它加载就好了。 我想知道我做错了什么?
答案 0 :(得分:2)
只有在您提出请求时才会设置Cookie。
它是如何工作的(它随每个请求发送)。而且由于你仍然在同一个请求中,它还没有。
但你可以自己设定:
if (isset($_GET['lang']) && $_GET['lang'] != "") {
$_COOKIE['lang'] = $lang;
setcookie("lang", $lang, time()+360*360*3600);
} elseif ...
这可能是你正在寻找的解决方法。