【发布时间】: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 }
}
?>
请帮助我了解导致错误的原因以及如何防止它。
【问题讨论】:
-
通过将
$result = mysql_query($query);更改为$result = mysql_query($query) or die(mysql_error());进行自己的调试。您的查询失败,这就是您收到该错误消息的原因,因此您需要找出您的查询出了什么问题。 -
同样的问题! :(
标签: php html login-script