2016-11-04 5 views
1

MySQLデータベースからデータを取得するためにPHPスクリプトを使用し、入力されたパスワードがデータベースのものと一致するかどうかを確認しています。はいの場合は、ユーザーをサイトにリダイレクトする必要があります。しかし、実行すると、$ errorMessageとして定義されたメッセージが表示されます。MySQLのデータを取得するためのPHPスクリプトが動作しない

私は間違っていますか?このスクリプトは、ブートストラップを使用するログインフォーム用です。

ありがとうございます!

<?php 

$link = mysqli_connect("localhost","root","password") or die("Verbindung zum Server nicht möglich. Bitte kontaktiere uns."); 
mysqli_select_db($link,"berufs_schule"); 

if(isset($_REQUEST['submit'])){ 
$errorMessage = "Ein Fehler ist aufgetreten."; 
$email=$_POST['email']; 
$password=$_POST['password']; 

if ($errorMessage != "") { 
echo "<p class='message'>" .$errorMessage. "</p>"; 
} 
else{ 
$query = "SELECT email, password FROM members WHERE email='$email'"; 

while ($rows = mysqli_fetch_array($query)): 

     $name_db = $rows['name']; 
     $password_db = $rows['password']; 

     if(md5($password) == $password_db){ 

      echo "<meta http-equiv='refresh' content=\"0; url=success.html\">"; 

     } else { 

      echo "<p class='message'>Passwort falsch, bitte versuche es erneut!</p>"; 

     } 
     endwhile; 
} 
} 
?> 

EDIT:
私は今にErrorMessageのチェックを削除し、そして今それはちょうど私に空白の画面を表示し、「(パスワードが正しくないことを出力しないPasswortのfalsch、bitte versuche ES erneut! ")、またはsuccess.htmlに私をリダイレクトします。エラーは何ができますか?

EDIT 2:http://test.enderpixel.net/berufs.schule/login.html

+0

どのような種類のerrorMessageがありますか? –

+1

で質問を編集してください。最初に '$ errorMessage =" Ein Fehler ist aufgetretenを設定しているので、実際のクエリは決して実行されません。 '$ errorMessage'が設定されている場合、この部分' if($ errorMessage!= ""){// ...} else {/ ...} 'はクエリの実行をスキップします。 – Cyclonecode

+0

ああ問題は何か分かります。あなたの$ errorMessageが定義されているので空ではない –

答えて

1

あなたのコードのテストスクリプトは、その中に複数のエラー(ErrorMessageの宣言、構文エラー、SQLインジェクションにオープン)を持っていたので、あなたはそれが役に立つかもしれません、このを見てみましょう。

<?php 
$errorMessage = "Ein Fehler ist aufgetreten."; 

$link = mysqli_connect("localhost","root","") or die("Verbindung zum Server nicht möglich. Bitte kontaktiere uns."); 
mysqli_select_db($link,"trainingcentre"); 

if (isset($_REQUEST['submit'])) { 

    // If either email or password is missing, show error emssage 

    if (empty($_POST['email']) || empty($_POST['password'])) { 

     echo $errorMessage; 

    } else { 

     // Lets escape user input 
     $email = mysqli_real_escape_string($_POST['email']); 

     $sql = "SELECT email, password FROM members WHERE email='$email'"; 

     $query = mysqli_query($link, $sql); 

     // If query was successfull 
     if ($query) { 

      while ($rows = mysqli_fetch_array($query)) { 

       $password_db = $rows['password']; 

       if (md5($password) == $password_db) { 

        echo "<meta http-equiv='refresh' content=\"0; url=success.html\">"; 

       } else { 

        echo "<p class='message'>Passwort falsch, bitte versuche es erneut!</p>"; 

       } 
      } 

     } else { // If query failed, show error message 

      echo $errorMessage; 

     } 

} 

私はそれをテストしませんでした。

+0

私はちょうど私のコードを修正し、あなたが指摘したエラーを修正しましたが、それはまだ動作しません。 $ errorMessageは表示されず、ブランク画面に戻ります。自分でテストしたい場合は、http://test.enderpixel.net/berufs.schule/login.htmlにアクセスしてください。 – myst02

関連する問題