Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 成员和管理员的不同重定向_Php_Mysql - Fatal编程技术网

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

Php 成员和管理员的不同重定向,php,mysql,Php,Mysql,希望一切顺利 我正在尝试对login.php进行编码,以便将成员重定向到consumerView.php,将员工/admin重定向到admin.php。我已经编写了以下php代码,但是我一直被重定向到consumerView.php,即使登录信息的角色是为员工提供的。有人能提供一些见解来让这项工作顺利进行吗? SQL查询可以工作,我在phpmyadmin中测试了它。 免责声明:我是php新手 // SELECT query $query1 = "SELECT u.id, u.email,

希望一切顺利

我正在尝试对login.php进行编码,以便将成员重定向到consumerView.php,将员工/admin重定向到admin.php。我已经编写了以下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";
    }
 }

?>
替换

if(r.name == 'member')


您已在
$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");
}
$myrow=$result->fetch_assoc();
//创建保存用户id的会话变量
$\会话['id']=$myrow['id'];
//将浏览器重定向到“配置文件编辑”页面并终止此页面。

如果($myrow['name']=='member'){/Ok,准确地说,我将在这里详细阐述我的评论:

你有

if (r.name == 'member') {
  header("Location: consumerView.php");
}
首先,变量
r
没有分配到任何地方。即使分配了,它在php中也应该是
$r
。然后,您正在访问它的属性,但在php中它是通过
->
而不是点来完成的。因此,您应该从
$result
中获取用户,然后执行类似的操作(或者不管存储方式如何,var_转储您的
$result
,以确定它是如何存储的)


或者,如果需要,您可以从
$myrow=$result->fetch_assoc()
访问它,但是您需要像数组一样访问它,所以它可能类似于
$myrow['name'];
if(r.name==''member')
你确定甚至是php吗?@Vini,我不确定,我试图在上面执行的SQL查询的结果上放置一个if-else。如果不是,那么正确的php语法是什么?将密码存储为纯文本?我写了一些扩展答案,你可以在下面查看。永远不要存储纯文本密码!请使用php来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
password\u hash()
。在散列之前,请确保您或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。感谢您的评论,我尝试了此操作,但仍被重定向到consumerView。php@mathStudent1936你能试着打印
$myrow
结果吗?我试过vardump和echo,但是页面上没有打印任何内容;我只是被重定向到Login.php或重定向到consumerView.php:/感谢您的详细说明,我尝试了这一点,但我仍然被重定向到consumerView.phpdo var_dump($myrow)并查看它/post here:)可能是因为这个
//检查用户是否已经登录并且有一个活动会话if(isset($_SESSION['id']){//将浏览器重定向到配置文件编辑页面并终止此页面。header(“Location:consumerView.php”);die();}
@Vini我尝试了一个var_转储($myrow),但没有在页面上转储任何内容。@MasivuyeCokile我考虑过这一点,所以我将其更改为包含if-else语句,但运气不佳
if (r.name == 'member') {
  header("Location: consumerView.php");
}
if ($user->name === 'member') {
  header("Location: consumerView.php");
}