我有这段代码,确保您已登录,然后通过检查登录时设置的cookie确保您在正确的页面上。此代码在登录脚本下面的目录中的页面上工作,但是在下面的目录中的页面中,它总是需要您访问。有什么想法吗?
<?php
session_start();
if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
header("location: http://mywebsite.com/member/accessdenied.html");
exit();
}
$_COOKIE["verify"] = $verify;
if( $verify != file_get_contents("name.txt")) {
header("location: http://mywebsite.com/member/accessdenied.html");
} else { }
?>
它似乎只是底部,检查cookie的部分,不起作用。再一次,任何想法?
答案 0 :(得分:4)
我认为您的Cookie分配向后:
$_COOKIE["verify"] = $verify;
应该是
$verify = $_COOKIE["verify"];
那应该是:
$verify = isset($_COOKIE["verify"])?$_COOKIE["verify"]:false;
好像之前没有设置过cookie一样,它会发出通知错误。
答案 1 :(得分:1)
<?php
$verify = $_COOKIE["verify"];
if( $verify == file_get_contents("name.txt")) {
echo $verify . 'is equal to the content of name.txt'
} else {
echo $verify . 'is NOT equal to the content of name.txt'
}
?>
尝试用此调试代码。查看变量的内容是否符合您的要求。但我发现变量是一个文件是不寻常的。
答案 2 :(得分:0)
您确定始终从file_get_contents获取内容吗?我可以想象它在一个目录中找到但在另一个目录中找不到!
答案 3 :(得分:0)
其他想法:可以将Cookie设置为仅与特定目录相关。我只是意识到,我们在这里缺少的是你首先设置cookie的部分。