私は、PHPを使用して自分の役割に基づいてユーザーを別のページにリダイレクトしたいと考えています。しかし、問題は、誰でも、いつも同じページ(最初のif文が参照されたページ)にリダイレクトされることです。ユーザーロールベースのログインは常に同じページにリダイレクト
はここので、コード
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT * FROM user WHERE username = '$myusername' and password = '$mypassword'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = isset($row['active']);
$count = mysqli_num_rows($result);
$role = isset($row['role']);
if($role == 'admin'){
$link = 'admin.php';
}
elseif($role == 'user'){
$link = 'user.php';
}
elseif($role == 'expert'){
$link = 'expert.php';
}
else{
$link = '404.php';
}
if($count == 1) {
$_SESSION['username'] = $myusername;
header("Location: ".$link."");
exit();
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
だ、私は別のページであれば最初の文にadmin.phpを交換した場合、ユーザーがリダイレクトされます。私は別のケースの解決策に従ったが、それは仕事をしなかった。
でも、 "="を "=="に変更しても同じですが、最初のif文では同じページにリダイレクトされます。私が "==="に変更すると、404.phpにリダイレクトされます。 –