我正在使用cookie记住访问者选择的语言。 这是我的lang.php页面的开头。
<?php
$time=microtime();
if (isset($_GET['lg']) AND ($_GET['lg'] != NULL)) {
if ($_GET['lg'] == 'fr') {
setcookie("userlang", "fr", time()*60*60*24*30);
header("location: index.php");
}
elseif ($_GET['lg'] == 'en') {
setcookie("userlang", "en", time()*60*60*24*30);
header("location: index.php");
}
else {
header("location: lang.php");
}
}
else {
if (isset($_COOKIE['userlang'])) {
unset($_COOKIE['userlang']);
setcookie("userlang", '', time()-3600);
}
}
?>
它是页面顶部,肯定没有。 有时它可以工作,有时它只是重新加载页面,好像没有设置cookie ...我可以点击我选择多次的语言标志..相同... 然后我停下来,等待几分钟,当我选择一种语言时,突然它起作用.... 请帮我! =)
任何想法都可能来自leet编码器?
提前感谢。
答案 0 :(得分:2)
设置cookie:
setcookie("myCookie", "cookie_data", time()+3600);
在您错过的代码中+随着时间的推移而签名。 它应该是
setcookie("userlang", "fr", time()+60*60*24*30);
答案 1 :(得分:0)
setcookie("userlang", "fr", time()+60*60*24*30);
不是setcookie("userlang", "fr", time()*60*60*24*30);
答案 2 :(得分:0)
我遇到了同样的问题......我找到了解决方案:域名与www和没有www创建不同的cookie。因此,如果用户在没有www的域中创建cookie,经过一段时间尝试更改它,但在带有www的域中它不会更改。它需要cookie巫婆是在域名中创建的,没有www。