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 条件のいずれかが false の場合、出力は得られません。試す:

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ステートメントを使用しても出力が得られない場合は、ログを監視して、致命的なエラーが表示され、出力が出力される前に実行がブロックされていないかどうかを確認してください!

于 2012-04-26T16:46:12.820 に答える