2016-06-10 118 views
0

我试着为我的页面创建一个成员登录。我可以让它为普通用户工作,但是当我输入管理员登录详细信息时,它根本不登录。管理员登录使用mysqli和php

<?php 
session_start(); 
?> 
<html> 
<head></head> 
<body> 

<?php 

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="root"; // Mysql password 
$db_name="SafeTNetD"; // Database name 
$tbl_name="members"; // Table name 

$con=mysqli_connect($host,$username,$password,$db_name); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
if(isset($_POST['login'])){ 
    $email = mysqli_real_escape_string($con,$_POST['email']); 
    $pword = mysqli_real_escape_string($con,$_POST['pword']); 
    $memberType = mysqli_real_escape_string($con,$_POST['memberType']); 
} 

$sel_user = "SELECT * FROM $tbl_name WHERE email = '$email' AND password = '$pword' AND memberType = '$memberType'"; 

$run_user = mysqli_query($con, $sel_user); 

$check_user = mysqli_num_rows($run_user); 

if($check_user > 0){ 
    if($memberType == 1) { 
    $_SESSION['email'] = $email; 
    echo "<script> location.replace('admin.php'); </script>"; 
    } 
    elseif ($memberType == 0) { 
    $_SESSION['email'] = $email; 
    echo "<script> location.replace('home.php'); </script>"; 
    } 
} else { 
    echo "<script>alert('Email or password is not correct, try again!')</script>"; 

} 


</body> 
</html> 

当与普通用户的电子邮件和密码,将其重定向我的主页登录,但用它提醒我,无论是电子邮件或密码不正确的管理员登录细节,但是我知道的电子邮件和密码对。

预先感谢您。

+0

仔细检查'$ _POST ['memberType']'的值? – Dale

+0

回应您的查询并检查它返回的结果! – Saty

+0

什么我们$ _POST ['memberType']的值? – DsRaj

回答

0

这里mysqli_num_rows不返回正数。这不是用户名或密码的问题。在你的查询中可能会出错。

既然你说它适用于普通用户,请检查$ _POST ['memberType']是否与db中的值匹配。

+0

您应该阅读http://php.net/manual/en/mysqli-result.num-rows.php – ASR

+0

@ASR它有什么问题?它会进入else条件,因为mysqli_num_rows没有返回正数? –

+0

啊,我认为你的陈述'mysqli_num_rows不返回正数。'现在它很清楚你的评论你说什么:) – ASR