Следующий код используется для создания простой формы входа в систему. Однако, когда он запускается, возникает ошибка:Необходима помощь с простой формой регистрации php
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
N:\ftp\compc\cw12gh\COM570\check_login.php on line 34 Wrong Username or Password
Line 34 is $count=mysql_num_rows($result);
Любые предложения относительно того, как исправить это?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Check Log In</title>
</head>
<body>
<?php
$host="localhost"; // Host name
$username="*****"; // Mysql username
$password="******"; // Mysql password
$db_name="******************"; // Database name
$tbl_name="teachers"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
</body>
</html>
Здесь [Ответ] (http://stackoverflow.com/a/33665819) Я написал для страницы регистрации и настройки страницы входа в 'mysqli' и' pdo'. Использует хешированные пароли, а не cleartext. Вы можете посмотреть в нем когда-нибудь – Drew
Вы не можете выводить содержимое перед использованием функции 'header'. 'Помните, что header() должен быть вызван до отправки любого фактического вывода либо с помощью обычных тегов HTML, либо пустых строк в файле, либо из PHP.' -http: //php.net/manual/en/function.header. php – chris85