首先,请耐心等待这个问题,因为我才刚刚开始。
所以我在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