[英]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使用“标头”完成的,因此也不起作用。 我在其他地方读过,可能会造成一些麻烦,因此我将其切换为尝试打印Javascript。
奇怪的是,我可以在设置好cookie的那一刻就找到它,确切的位置应该是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;
}
?>
cookie对设置它的脚本不可用。
您必须设置cookie,然后在下一页加载时,cookie将可用于php代码
试试这个代码:
setcookie("language", $lang, time()+60*60*24*90, "/");
我不确定.URL应该做什么
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.