J'ai une instruction if qui est utilisée avec une page de connexion.Déclaration préparée Mysqli non wokring
J'ai essayé de le convertir en une instruction préparée par mysqli. C'était auparavant juste mysqli normal. Le problème est que quel que soit l'identifiant que j'entre, il continue de dire Id invalide! au lieu de passer à la bonne page.
if (isset($_POST['login']))
{
require "connect.php";
session_start();
if (count($_POST) > 0)
{
if ($stmt = mysqli_prepare($conn, "SELECT id, Login_ID, Name, User_Role_ID FROM user WHERE Login_ID = ?"));
$lid = $_POST["id"];
$stmt->bind_param("i", $lid);
$stmt->execute();
$stmt->bind_result($id, $Login_ID, $Name, $User_Role_ID);
$_SESSION["Student_DB_ID"] = $id;
$_SESSION["Login_ID"] = $Login_ID;
$_SESSION["Name"] = $Name;
$_SESSION["User_Role_ID"] = $User_Role_ID;
switch ($User_Role_ID)
{
case "2":
header("Location: ../views/student/");
break; //Student
case "1":
header("Location: ../views/admin/");
break; //Admin
default:
echo "Invalid ID!";
}
/* close statement */
$stmt->close();
$conn->close();
}
}
parce que votre stmt est pas un tableau. vous devriez attraper le jeu de résultats dans une variable, puis vérifier avec if. – Deep