php - 用户/管理员通过 PHP 登录

标签 php mysql authentication

我的页面可以正常工作,因为登录会将我带到index.php,但它永远不会重定向到dashboard.php。我感谢任何意见。

数据库列是:id |用户名 |密码 |管理员
只有两种类型的帐户,管理员帐户用 1 表示

<?php

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

// Connect to database
include "db_connect_service.php";

// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$mypassword = crypt($mypassword, '$1$philipphp');

// Query
$result= $dbh->query("SELECT * FROM members WHERE username='$myusername' AND     password='$mypassword';");

// Mysql_num_row is counting table row
$count = $result->rowCount();

// Determine if user is "user" or "admin"
$usertype = $dbh->query("SELECT admin FROM members WHERE username='$myusername';");
$row = mysql_fetch_row($usertype);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) {

// Start session, register $myusername, $mypassword and redirect to login_success.php
session_start();
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
$_SESSION['admin'] = $row;

// Redirect to appropriate page depending on user rights. Indicator 0 for user, 1 for admin.
if ($_SESSION['admin'] == 1){
    header("location:dashboard.php");
    }
else {
    header("location:index.php");
    }
$dbh = null;
}
else {
echo "Wrong Username or Password";
}
?>

最佳答案

$_SESSION['admin'] = $row; -> 您将分配一行。但用 1 进行检查。

我认为您的admin字段是表中的用户类型。因此,您必须获取用户类型并在 if 条件中进行比较

这样做

$_SESSION['admin'] = $row["admin"];

关于php - 用户/管理员通过 PHP 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21508693/

相关文章:

php - 基本 PHP/mySQL 问题...循环遍历表中的每一行

php - 从表mysql php中选择唯一记录

mysql - 玛丽亚数据库。使用事务回滚而不锁定表

javascript - 我如何使每个查询折叠 php

php - 在 Drupal 站点的 PHP 代码中使用 token

java - 如何登录网页并将数据检索到 Java 应用程序?

unix - 密码保护普罗米修斯访问

security - 允许使用用户名或电子邮件地址登录的 Tomcat 安全容器

php - 特定行上的自举表 ionic

mysql - 重复更新时插入获取 "new"生成的 id