PHP无法检索cookie


PHP won't retrieve cookie

首先,请耐心等待这个问题,因为我才刚刚开始。

所以我在index.php中运行以下代码:

<?php  
    if(isset($_COOKIE['language'])) {
        if (($_COOKIE['language']) == 'en')
            print "<SCRIPT LANGUAGE='"JavaScript'">window.location='"URLGOESHERE'"</SCRIPT>";  
        elseif (($_COOKIE['language']) == 'fr') 
            print "<SCRIPT LANGUAGE='"JavaScript'">window.location='"URLGOESHERE'"</SCRIPT>";
    }
    else {
        print "<SCRIPT LANGUAGE='"JavaScript'">window.location='"URL-FOR-COOKIE-SETTING-PAGE'"</SCRIPT>";
    }
    ?>

"else"语句重定向到用户设置语言偏好的页面,一旦他们这样做,该页面设置一个cookie,然后将他们发送到正确版本的站点。但是,当用户返回到这个主index.php时,它似乎找不到cookie,并直接跳转到"else"语句。重定向过去是用PHP使用'header '完成的,当时也不起作用。我在其他地方读到这可能会带来一些麻烦,所以我切换到尝试打印Javascript。

奇怪的是,我可以找到cookie一旦它被设置,准确地在哪里,正确的名称和变量都存在。(据我所知)我完全按照书上说的那样做了。我在Firefox和Safari上都试过了,但都没有成功。

我错过了什么?

EDIT:这是实际设置cookie的脚本。参数通过如下url编码从链接发送:<a href="setlang.php?lang=en">

<?php 
$lang = urlencode($_GET["lang"]);
setcookie("language", $lang, time()+60*60*24*90, ".URL");
switch ($lang) {
case 'en':
header('Location:  URLGOESHERE');
break;
case 'fr':
header('Location:  URLGOESHERE');
break;
}
 ?>

设置cookie的脚本不可用

你必须设置cookie然后在下一页加载cookie将可用于PHP代码

试试下面的代码:

setcookie("language", $lang, time()+60*60*24*90, "/");

我不确定。url应该做什么。o