首先,请关注这个问题,因为我刚刚开始这个。
所以我在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”语句。重定向过去常用于使用'header'与PHP一起使用,然后它也不起作用。我曾在其他地方读过这可能会造成一些麻烦,所以我将其切换为尝试打印Javascript。
奇怪的是,我可以在设置cookie后立即找到它,确切地说它应该是什么,正确的名称和变量都存在。我完成的就像书中告诉我的那样(据我所知)。我已经在Firefox和Safari中尝试了这一点而没有运气。
我错过了什么?
编辑:这是实际设置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;
}
?>
答案 0 :(得分:3)
设置它的脚本无法使用cookie。
你必须设置cookie,然后在下一页加载cookie将可用于php代码
答案 1 :(得分:0)
试试这段代码:
setcookie("language", $lang, time()+60*60*24*90, "/");
我不确定.URL应该做什么o.o