【问题标题】:A bad error in PHPPHP 中的一个严重错误
【发布时间】:2016-11-25 22:55:53
【问题描述】:

我创建了一个登录页面确认,但是当我想登录时发现这个错误:

警告:mysql_fetch_row() 期望参数 1 是资源,布尔值在 /home/u133082736/public_html/login.php 第 14 行给出

这是我的代码:

<?php
    session_start();
    if($_POST) {
        require_once 'config.php';
        $username = $_POST['username'];
        $password = $_POST['password'];     
        $conn = mysql_connect($dbhost,$dbuser,$dbpass);
            or die ('Error connecting to mysql');
        mysql_select_db($dbname);
        $query = sprintf("SELECT COUNT(id) FROM email_activation WHERE UPPER(username) = UPPER('%s') AND password='%s'");
            mysql_real_escape_string($username),
            mysql_real_escape_string(md5($password)));
        $result = mysql_query($query);
        list($count) = mysql_fetch_row($result);
        if($count == 1) {
            $_SESSION['authenticated'] = true;
            $_SESSION['username'] = $username;
            $query = sprintf("UPDATE email_activation SET last_login = NOW() WHERE UPPER(username) = UPPER('%s') AND password = '%s'",
                mysql_real_escape_string($username),
                mysql_real_escape_string(md5($password)));
            mysql_query($query);
            $query = sprintf("SELECT is_admin FROM email_activation WHERE UPPER(username) = UPPER('%s') AND password='%s'",
                mysql_real_escape_string($username),
                mysql_real_escape_string(md5($password)));
            echo $query
            list($is_admin) = mysql_fetch_row($result);
            if($is_admin == 1) {
                header('Location:admin.php');           
            } else {
                header('Location:home.php');                
            }
        } else {    ?>
<span style='color:red'>Error: that username and password combination does not match any currently within our database.</span>
<?php   }
    }
?>

请帮助我了解导致错误的原因以及如何防止它。

【问题讨论】:

标签: php html login-script


【解决方案1】:

如果您的查询没有返回任何参数,并且您收到错误消息 mysql_fetch_row() 需要参数 1 ,您应该调试您的查询。我建议您尝试 echo $query 并查看结果,这将是一个很好的起点。

Link to mysql_fetch_row() documentation

【讨论】:

  • 好的,如果对你有帮助,请记得接受答案。
  • 是的! + 你能在我的代码中再次查看并尝试告诉我那里的解析错误是什么吗?我是 PHP 新手!
  • 我改了!
  • 是的!请看看它,让我知道错误是什么
  • 我不明白什么 list($count) = mysql_fetch_row($result);关于,请尝试$result = mysqli_query($conn,$query); $row = mysqli_fetch_array( $result, MYSQLI_ASSOC ); 而不是$result = mysql_query($query); list($count) = mysql_fetch_row($result);
猜你喜欢
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
相关资源
最近更新 更多