成员和管理员的不同重定向

时间:2017-04-10 11:55:04

标签: php mysql

希望一切顺利!

我正在尝试编写我的login.php代码,以便将其重定向到consumerView.php以获取成员,将admin.php重定向到employee / admin。我编写了以下PHP代码,但我一直被重定向到consumerView.php,即使登录信息的角色是针对员工的。有人可以提供任何见解让这个工作吗? SQL查询有效,我在phpmyadmin中测试过它。 免责声明:我是php的新手。

// SELECT query
    $query1 = "SELECT u.id, u.email, u.pass password, r.name role
              FROM users u INNER JOIN role r ON r.id = u.ro_fk
              WHERE email = ? AND u.pass = ? ;";

  if(r.name == 'member'){
  header("Location: consumerView.php");}
  else
  {header("Location: admin.php");}
  die();
} else {
  //If the username/password doesn't matche a user in our database
  // Display an error message and the login form
  echo "Failed to login";
}
} else {
  echo "failed to prepare the SQL";
    }
 }

?>

3 个答案:

答案 0 :(得分:1)

您的结果是$myrow

$myrow = $result->fetch_assoc();
//Create a session variable that holds the user's id
$_SESSION['id'] = $myrow['id'];
//Redirect the browser to the profile editing page and kill this page.

if($myrow['name'] == 'member'){  // <- You need to change this line to check user is member or not.
header("Location: consumerView.php");
}
else{
header("Location: admin.php");
}

答案 1 :(得分:0)

替换

if(r.name == 'member')

 if($myrow['name'] == 'member')

答案 2 :(得分:0)

好的,为了准确起见,我将在此详细说明我的评论:

你有

if (r.name == 'member') {
  header("Location: consumerView.php");
}

首先,你没有在任何地方分配变量r。即使你这样做,它应该是php中的$r。然后,您正在访问它的属性,但在php中,它由->而不是点完成。因此,您应该从$result获取您的用户,然后执行类似的操作(或者将其存储,var_dump您的$result以确定它是如何存储的)

if ($user->name === 'member') {
  header("Location: consumerView.php");
}

或者你可以根据需要从$myrow = $result->fetch_assoc()访问它,但是你需要像数组那样访问它,所以它可能就像$myrow['name'];