页面即时贴片发布时包含以下代码,并正确回显cookie:
/* verify.php */
if ($age >= "21" && $location == "USA" && $cookie == "Y") {
$value = "1";
setcookie("age_verified", $value, time()+60*60*24*30);
header("Location: ../portal.php?cookieset");
}
elseif ($age >= "21" && $location == "USA") {
session_start();
$_SESSION['age_verified'] = "1";
header("Location: ../portal.php?sessionset");
}
在portal.php上,我无法回显cookie,但如果选择了该选项,则会话显示正常。
/* portal.php */
session_start();
echo $_SESSION["age_verified"];
结果是" 1"
/* portal.php */
echo $_COOKIE["age_verified"];
无结果
我试图实现类似下面代码块的功能,但由于Cookie没有回应结果,因此无法正常工作 / * portal.php * / 在session_start();
if($_SESSION['age_verified']!="1"){
header("Location: index.php?no_session");
}
elseif ($_COOKIE['age_verified']!="1"){
header("Location: index.php?no_cookie");
}
else{
echo "";
}
我缺少什么?
答案 0 :(得分:0)
在我看来,$_SESSION['age_verified']!="1"||$_COOKIE['age_verified']!="1"
正在检查EITHER会话或cookie值。 Cookie值更持久,因为它们存储在用户的计算机上,并且会话值仅持续到浏览会话。它们可能都不会被设置。
事实上,在verify.php
上查看你的逻辑,你正在执行一个动作或另一个动作,而不是两个动作。希望这会有所帮助。