设置cookie并调用它后收到错误

时间:2012-06-02 21:30:07

标签: php cookies multilingual

  

可能重复:
  Accessing $_COOKIE immediately after setcookie()

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

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"]来执行此代码时,无法打开文件,但是当我刷新页面后它加载就好了。 我想知道我做错了什么?

1 个答案:

答案 0 :(得分:2)

只有在您提出请求时才会设置Cookie。

它是如何工作的(它随每个请求发送)。而且由于你仍然在同一个请求中,它还没有。

但你可以自己设定:

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

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