我刚刚开始学习如何使用SQL数据库。我正在关注youtube的教程;但是,我似乎在连接数据库时遇到问题。我在cPanel中使用phpMyAdmin和MySQL。
当我测试登录页面时,我输入了我在phpMyAdmin中手动设置的用户帐户的信息,但它一直返回错误,&#34;找不到您输入的用户名。&#34; < / p>
我做错了什么?我知道我输入了正确的数据库用户名和密码以及正确的数据库名称。
这是我的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;
?>
答案 0 :(得分:2)
正如我和@ 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
的数字都等于布尔值True
,因此,使得该检查几乎无用。
它只对可读性有帮助。