Ich möchte Benutzer auf andere Seite basierend auf ihrer Rolle mit PHP umleiten. Aber das Problem ist, wer immer der Benutzer ist, sie werden immer auf die gleiche Seite umgeleitet (Seite, auf die die erste if-Anweisung verweist).User-Rolle basierte Login immer auf die gleiche Seite umleiten
Hier ist der Code
<?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";
}
}
?>
Also, wenn ich admin.php auf der ersten ersetzen if-Anweisung mit einer anderen Seite werden die Nutzer dort umgeleitet werden. Ich habe Lösungen aus verschiedenen Fällen verfolgt, aber es hat nicht funktioniert.
sogar ich ändere das "=" zu "==" es wird das gleiche sein, immer noch auf die gleiche Seite auf der ersten if-Anweisung umgeleitet. Wenn ich es in "===" ändere, wird es in die 404.php umgeleitet. –