我需要一些幫助,試圖找出爲什麼我的PHP登錄重定向功能不正常。我首先嚐試了一個簡單的登錄,它工作正常。但是在我添加一條if語句以根據用戶級別重定向之後,它就會崩潰。php登錄重定向不工作
下面的代碼:
*編輯:我需要更多的幫助與代碼實際上重定向到用戶的角色級別的相應頁面。目前,無法登錄(無登錄錯誤),但不會將用戶發送到其相應的頁面(即:admin到管理頁面,用戶到用戶頁面,協調員到協調器頁面)。
<?php
session_start();
include 'connect.php';
$email = $_POST["login_email"];
$pwd= $_POST["login_pwd"];
$role = $_POST["role"];
$sql = "SELECT * FROM users WHERE email='$email' AND password= '$pwd' AND role='$role' ";
if($row != mysqli_fetch_assoc($result)){
echo "Your user name or password is incorrect!";
header("Location:login.html");
}else{
$_SESSION['id'] = $row['id'];
if ($_SESSION['role'] == 'admin') {
header("Location: admin.php");
} else if ($_SESSION['role'] == 'editor') {
header("Location: editor.php");
} else if ($_SESSION['role'] == 'user') {
header("Location: user.php");
}
echo "Successful login!";
}
無法在標題前執行回顯。有標頭包含像'admin.php?MSG = Password_Incorrect''並且有admin.php回顯它 – Forbs
**警告:**當使用'mysqli'時,您應該使用[參數化查詢](http:// php。 net/manual/en/mysqli.quickstart.prepared-statements.php)和[bind_param](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。不要使用字符串插值或串聯來實現這個,因爲你已經創建了一個嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**將'$ _POST','$ _GET'或**任何**用戶數據直接放入查詢中,因爲如果有人試圖利用您的錯誤,這可能會非常有害。 – FrankerZ