$_SESSION['role'] = false
는 여전히 세션을 가지고 관리 페이지의 헤더입니다
function auth($email, $pass){
global $result;
while ($row = mysql_fetch_array($result)) {
if($email == $row["email"] && $pass == $row["password"])
{
return true;
}
}
return false;
}
function test($email, $pass){
$test1 = auth($email, $pass); <--above
if ($test1) {
get_role($email); <-- below (This is the one where I'm puzzled)
$_SESSION['email'] = true;
header('location:menupage.php');
exit;
}
else{
echo "Please enter correct username and password or <a href='register.php'>Register</a>";}
}
function get_role($email){
global $connection;
$sql="SELECT * FROM exam WHERE email= '$email'";
$result = mysql_query($sql, $connection);
confirm_query($result);
while ($row = mysql_fetch_array($result)) {
if ($row["role"] == 'Admin'){
$_SESSION['role'] = true;
}
else
$_SESSION['role'] = false;
}
}
을 설정된 변수. 따라서 !isset($_SESSION['role'])
은 예상대로 평가되지 않습니다.
의 관리 페이지 :
if($_SESSION['role'] === false){ ...
감사 블레이크 같은 것을 사용합니다. 그래서 세션이 여전히 설정되었다고 말하고 있습니까? false로 설정됩니다. 내가 참조. 나는 단지 거짓 진술을 모두 제거하고 그것은 매력처럼 일했습니다. 논리를 가져 주셔서 감사합니다! 감사합니다. – Addy75
우수. 대답이 주어진다면 답변을 대답으로 표시하는 것을 잊지 마십시오. 건배. – Blake