我刚刚开始学习如何使用SQL数据库。我在youtube上学习了一个教程;但是,似乎我在连接数据库时遇到了问题。我在cPanel中使用phpMyAdmin和MySQL。
当我测试登录页面时,我输入在phpMyAdmin中手动设置的用户帐户的信息,但它一直返回错误“找不到您输入的用户名”
我做错什么了?我知道我输入了正确的数据库用户名和密码以及正确的数据库名称。
这是my connect.php:
<?php
mysql_connect("localhost", "username", "password");
mysql_select_db("databasename");
?>
这是我的login.php:
if ($_POST['loginbtn'])
{
$user = $_POST['user'];
$password = $_POST['password'];
if ($user)
{
if ($password)
{
require("connect.php");
$password = md5(md5("additional".$password."additional"));
// echo "$password";
$query = mysql_query("SELECT * FROM users WHERE username='$user'");
$numrow = mysql_num_rows($query);
if (!numrows == 1)
{
$row = mysql_fetch_assoc($query);
$dbid = $row['id'];
$dbuser = $row['username'];
$dbpass = $row['password'];
$dbactive = $row['active'];
if ($password == $dbpass)
{
if ($dbactive == 1)
{
//set session info
$_SESSION['userid'] = $dbid;
$_SESSION['username'] = $dbuser;
echo "You have been logged in as <b>$dbuser</b>. <a href='./member.php'>Click here</a> to go to the member page.";
}
else
echo "You must activate your account before you can logon. $form";
}
else
echo "You did not enter the correct password. $form";
}
else
echo "The username you entered was not found. $form";
mysql_close();
}
else
echo "You must enter your password. $form";
}
else
echo "You must enter your username. $form";
}
else
echo $form;
?>
最佳答案
正如我和@Fred ii-注意到的,您可能的问题在于以下两行:
$numrow = mysql_num_rows($query);
if (!numrows == 1)
第一行很好,但您可能需要
$numrows
。第二行是问题所在。
目前,您的
if
相当于:if( !(defined('numrows') || 'numrows') == 1 )
或者更准确地说:
if( defined('numrows') )
{
if( !numrows == 1 )
{
// [code here ...]
}
}
else if( !'numrows' == 1 )
{
// [same code here ...]
}
这不是你想要的。(未定义未知常量时,PHP会将其隐式转换为字符串)
此外,还要检查
numrows
的否定是否为1。发生这种情况的唯一方法是当numrows
为0时,但是您的代码将继续,就像它成功一样。你应该使用这个:
$numrows = mysql_num_rows($query);
if ($numrows)
或更短:
if ( mysql_num_rows($query) )
为什么我不做?
好吧,任何不同于
$numrows==1
的数字都等同于布尔值0
,因此,使该检查几乎无用。它只对可读性有帮助。