我需要一些帮助,试图找出为什么我的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