繁体   English   中英

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使用“标头”完成的,因此也不起作用。 我在其他地方读过,可能会造成一些麻烦,因此我将其切换为尝试打印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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM