データベース内の人の「役割」に基づいて、セッションとページへのエントリを作成しようとしています。ロジックを釘付けにしたと思い、コードを作成しました。機能した。問題は、それは誰にとっても機能するということです。自分のコードが正しいのに論理的に正しくない理由を指摘するために、助けが必要でした。どんな助けでも大歓迎です。これが私のコードです。役割が「管理者」ではない人は誰でも参加できるようです。理由を特定できます。
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;
}
}
これは、セッションがある管理ページのヘッダーです
<?php
session_start();
if(!isset($_SESSION['role']))
{ $_SESSION['msg'] = 'you are not logggedd in';
header('location: menupage.php');
exit;
}
?>