用户/管理员通过PHP登录

时间:2014-02-02 08:50:07

标签: php mysql login

我的页面工作正常,登录将把我带到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";
}
?>

3 个答案:

答案 0 :(得分:2)

$_SESSION['admin'] = $row; - &gt;你分配一行。但请查看1

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

中进行比较

这样做

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

答案 1 :(得分:0)

试试这个......

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

答案 2 :(得分:0)

改变

$usertype = $dbh->query("SELECT admin FROM members WHERE username='$myusername';");

进入

$usertype = $dbh->query("SELECT id FROM members WHERE username='$myusername' AND admin='1'");

$row = mysql_fetch_row($usertype);

你试过{$ 1}你的$ row

吗?

尝试这样做

因为我认为您的echo$row

没有获得价值