Php 登录有效,但忽略 MySQL 脚本中的用户类型字段

标签 php mysql arrays session authentication

希望我能在过去几天一直困扰着的这个登录问题上得到一些帮助。

基本上,登录将登录用户,但每次都会进入相同的页面。我想要它做的是:如果用户是管理员,则将该人带到管理页面。如果是用户,则转到用户页面。

我已经在数据库中进行了设置,其中有一个用户类型字段,并硬编码了 2 个用户,其中一个用户的用户类型为 admin,另一个用户的用户类型为 user。

<?php
session_start();
$host="xxxxxxxxxxxxx"; // Host name 
$username="xxxxxxx"; // Mysql username 
$password="xxxxxxx"; // Mysql password 
$db_name="xxxxxxxx"; // Database name 
$tbl_name="member"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$username=$_POST['username']; 
$password=$_POST['password'];

// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
$num_results = mysql_num_rows($result);
$array = mysql_fetch_array($result);
$_SESSION['username']=$array['username'];
$_SESSION['password']=$array['password'];
$_SESSION['usertype']=$array['usertype'];

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $username and $password, table row must be 1 row

if($count==1){

$_SESSION['username']=$_POST['username'];
$_SESSION['password']=$_POST['password'];

if ($array['usertype']=="user")
{ header ("location: userpage.php"); }
     else if ($array['usertype']=="admin");
{ header ("location: adminpage.php"); }
   } else {
  echo "Wrong user or password";
  }
?>     

以上是我使用的最新代码。每次我登录时,它似乎都会跳过第一个标题,直接进入第二个标题。我什至在登录后打印了 session ,它确实从表中获取了用户类型。

没有更多关于如何解决此问题的线索。

最佳答案

不确定是否是导致您出现问题的原因,但此处末尾有一个需要删除的分号:

else if ($array['usertype']=="admin");

关于Php 登录有效,但忽略 MySQL 脚本中的用户类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065811/

相关文章:

php - 从文本文件 extensi .job 中读取特定值

php - 如何在mysql中为(select * from)设置变量

sql - 仅获取属性的默认图像

java - 搜索具有 Big-O 时间限制的重复项

c - 将数组传递给函数并显示元素时出错?

php - 如何用 PHP 创建确认电子邮件?

php - "Illegal string offset"对象属性数组警告?

php - 如何避免 PDOStatement::bindParam 弄乱引用的值

javascript - 如何计算数组中低于/高于给定数字的元素数量(javascript)

php - 如何通过 composer 为 PHP CLI 提供脚本(独立和依赖)