0

パスワードの入力が間違っているが電子メールが間違っている場合にメッセージを表示するログインフォームがあります。ただし、電子メールまたはその両方が正しくない場合は何も表示されません。どちらの場合も欠落しているメッセージ(「パスワードと電子メールが一致しません」)を表示したかったのです。どんな助けも本当に感謝しています。

  <div id="container">
            <div>
                <h1>Log In</h1>
                <form method="POST" action="logIn.php">
                    <label>Email</label>
                    <input name= "txtEmail"/>
                    <label>Password</label>
                    <input type="password" name="txtPass"/>
                    <input type= "submit" name= "submit" value="Log In"/>
                </form>
            </div>  
        </div>

<?php

    require ('connection.php');

            if (isset($_POST["txtEmail"]))
            {
            $email= $_POST["txtEmail"];//NO RECONOCE LOS TEXT FIELDS!!
            }
            else
            {$email= "";
            echo "Email empty";}

            if (!empty($_POST['txtPass']))
            {
            $pass= $_POST['txtPass'];
            }
            else
            {$pass= "";
            echo "Password empty.";}

            // Enviar consulta
              $instruction = "SELECT Password, Email FROM customer WHERE Email = '". $email . "'";
              $query = mysql_query ($instruction, $connection)
                 or die ("Fallo en la consulta");       
           // Mostrar resultados de la consulta
              $nrows = mysql_num_rows ($query);
              if ($nrows > 0)
              {
                    $result = mysql_fetch_array ($query);
                    if (isset($result['Password']))
                    {
                    $clave = $result['Password'];
                    //echo "Isset password works.";
                    }
                    else {$result= "";}
                    Email doesnt exist, or ;}


                    if ($clave == $pass){
                        header('Location: welcomeLogIn.php');
                    }
                    else{
                        echo "Password or Email doesnt match.";
                    }
              }
    mysql_close($connection);
    ?>
4

2 に答える 2

0

一致する電子メールがない場合、結果は得られないため、次のように簡単に追加できます。

if ($nrows > 0)
{
   //You current code to check if the password is correct                 
}
else{
  echo "No matching email found";
}
于 2012-11-13T19:34:23.390 に答える
0

レビュー用にコードを提供していただきありがとうございます。コードに基づいて、PHP を学習し始めたばかりであることがわかります。あなたが求めていることを行うための非常に簡単な方法であなたのコードを更新しました。基本的に、電子メールまたはパスワードが空の場合、$empty_value 変数を 1 に設定します。次に、スクリプトの最後で、$empty_value 変数が 1 に等しいかどうかを確認します。必要なメッセージである場合は、次のようになります。印刷されます。コードには多くのセキュリティ上の問題があることに注意してください。次のガイドのすべての情報を読むことをお勧めします: http://phpsec.org/projects/guide/

<?php

    require ('connection.php');
$empty_value = 0;

            if (isset($_POST["txtEmail"]))
            {
            $email= $_POST["txtEmail"];//NO RECONOCE LOS TEXT FIELDS!!
            }
            else
            {$email= "";
            $empty_value = 1;}

            if (!empty($_POST['txtPass']))
            {
            $pass= $_POST['txtPass'];
            }
            else
            {$pass= "";
            $empty_value = 1;}

            // Enviar consulta
              $instruction = "SELECT Password, Email FROM customer WHERE Email = '". $email . "'";
              $query = mysql_query ($instruction, $connection)
                 or die ("Fallo en la consulta");       
           // Mostrar resultados de la consulta
              $nrows = mysql_num_rows ($query);
              if ($nrows > 0)
              {
                    $result = mysql_fetch_array ($query);
                    if (isset($result['Password']))
                    {
                    $clave = $result['Password'];
                    //echo "Isset password works.";
                    }
                    else {$result= "";}
                    Email doesnt exist, or ;}


                    if ($clave == $pass){
                        header('Location: welcomeLogIn.php');
                    }
                    else{
                        echo "Password or Email doesnt match.";
                    }
              }
    mysql_close($connection);
    ?>

<?php
if ($empty_value == 1) {
echo "Password or Email doesn't match.";
}
?>

  <div id="container">
            <div>
                <h1>Log In</h1>
                <form method="POST" action="logIn.php">
                    <label>Email</label>
                    <input name= "txtEmail"/>
                    <label>Password</label>
                    <input type="password" name="txtPass"/>
                    <input type= "submit" name= "submit" value="Log In"/>
                </form>
            </div>  
        </div>
于 2012-11-13T19:33:42.437 に答える