设置COOKIE后,PHP页面不断刷新

问题描述 投票:0回答:1

以下代码是我的php页面中的第一个代码。

$current_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

    if(isset($_REQUEST["lang"])){ //check if different language was selected
        $lang = $_REQUEST["lang"];
        if($lang == "eng"){
            $lang_value = 1;            
        }else{
            $lang_value = 0;            
        }

        setCookie('language',$lang);
        setCookie('language_value',$lang_value);
        header("Refresh:0; url=".$current_link);
    }else{ //if different language was not selected, check if cookie is set with language value
        if(isset($_COOKIE["language"])){
            $lang = $_COOKIE["language"];
            $lang_value = $_COOKIE["language_value"];
        }else{ //if cookie with language value is not set, create it now with default language option
            setCookie('language','eng');
            setCookie('language_value',1);
            header("Refresh:0; url=".$current_link);
        }
    }

访客只能选择两种语言之一。如果选择了一种语言,则会创建具有所选语言值的cookie。

如果未选择语言,脚本将检查是否存在具有该语言值的cookie,如果存在,则访问该cookie值。如果不存在具有语言值的cookie,则会创建具有默认语言(英语)值的cookie。

该页面仅在创建cookie时刷新,并在存在语言值的cookie时继续其余代码。但是,即使在创建cookie并可以访问它们之后,页面仍保持刷新。例如:

echo $_COOKIE["language"]; //will output the selected language value

不确定此处的逻辑是否有问题,但会有所帮助。

谢谢

php cookies page-refresh
1个回答
0
投票

您需要添加cookie的过期时间和路径:

setCookie('language',$lang, time() + (86400 * 30), "/"); // 86400 = 1 day
© www.soinside.com 2019 - 2024. All rights reserved.