我如何登录我的帐户?

时间:2014-03-27 07:32:30

标签: php mysql login

这是我的代码。但是,它无法正常工作,一旦我使用用户名和密码登录显示错误信息,如下所示:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\lumbiniinternational_hotel\administrator\login.php on line 26

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\lumbiniinternational_hotel\administrator\login.php on line 27

我的完整代码是:

if(isset($_POST['submit'])){
    $query="SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".$_POST['password']."' AND role='administrator'";
$result=mysql_query($query);
    $row=mysql_fetch_array($result,MYSQL_ASSOC);
    if(mysql_num_rows($result)>0){
        header("Location:index.php");
        $_SESSION['username']=$row['username'];
    }else
        $message=get_word($lang,"Wrong username or password.");
}
?>

2 个答案:

答案 0 :(得分:1)

这两个错误都表明您的查询错误 确保正确拼写了字段名称 用'喜欢这个:

括起表名和字段名
select `field_name` from `table_name`

更改您的

$result=mysql_query($query);

$result=mysql_query($query) or die(mysql_error());

这将显示正确的sql错误

最后作为旁注:
  - 停止使用mysql扩展并切换到mysqli_或PDO   - 在将POST数据直接用于查询之前清理它们

答案 1 :(得分:0)

检查查询是否出错,在mysql_query末尾添加or die(mysql_error())

if(isset($_POST['submit'])){
    $query="SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".$_POST['password']."' AND role='administrator'";
    $result=mysql_query($query) or die(mysql_error());
    $row=mysql_fetch_array($result,MYSQL_ASSOC);
    if(mysql_num_rows($result)>0){
        header("Location:index.php");
        $_SESSION['username']=$row['username'];
    }else
        $message=get_word($lang,"Wrong username or password.");
}

此外,我建议您直接使用mysql_fetch_assoc而不是mysql_fetch_array

的Mirko