0

我的代码不会对我产生影响,但我相信它应该可以工作。我试图让它告诉我,如果它在我的数据库中找到一行,则匹配它并告诉我我已登录,或者如果它没有找到任何行,则回显该组合无效。无论如何,它没有回应一件事?我对此很陌生,我似乎无法弄清楚。请发挥你的魔力,伙计们?

注意:查询中引用的所有数据库确实存在,并且它也连接到该数据库。

谢谢!

<?php

if (isset($_POST['username'])&&isset($_POST['password'])) 
{
$username = $_POST['username'];
$password = $_POST['password'];
$password_hash = md5($password);

if (!empty($username)&&!empty($password)) 
{
    $query = "SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password_hash'";
    if ($query_run = mysql_query($query)) 
    {
        $query_num_rows = mysql_num_rows($query_run);
        if ($query_num_rows==0) 
        {
            echo 'Invalid username password combination';
        }
            else 
        {
            echo 'Ok.';
        }
    }
}
}

?>

<form action="<?php echo $current_file; ?>" method="POST">
Username: <input type="text" name="username" class="login"> 
Password: <input type="password" name="password" class="login">
<input type="submit" value="Login">
</form>
4

2 回答 2

1

您没有连接到数据库。您需要添加如下内容:

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
于 2012-04-26T16:44:33.153 回答
0

你有很多 else 没有相应的 else 语句来打印一些东西。如果其中一个条件为假,您将不会得到任何输出。尝试:

if (isset($_POST['username'])&&isset($_POST['password'])) 
{
   $username = $_POST['username'];
   $password = $_POST['password'];
   $password_hash = md5($password);

   if (!empty($username)&&!empty($password)) 
   {
      $query = "SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password_hash'";
      if ($query_run = mysql_query($query)) 
      {
          $query_num_rows = mysql_num_rows($query_run);
          if ($query_num_rows==0) 
          {
               echo 'Invalid username password combination';
          }
          else 
          {
             echo 'Ok.';
          }
      }
      else echo 'query exeution returned false';
   }
   else echo 'empty username or password';
}
else echo 'not isset username or pwd';

最后,如果即使使用这个 else stataments 也没有输出,那么如果出现任何致命错误并在打印任何输出之前阻止执行,请查看日志!

于 2012-04-26T16:46:12.820 回答