以下代码是我的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
不确定此处的逻辑是否有问题,但会有所帮助。
谢谢
您需要添加cookie的过期时间和路径:
setCookie('language',$lang, time() + (86400 * 30), "/"); // 86400 = 1 day