2017-10-30 5 views
0

ログイン、登録オプションでプロジェクトを実行していますが、プロファイルにログインする際に問題が発生しました。num_rows with functionallity

電子メールに正しいデータを入力した後、パスワードフィールドには成功のテキストは表示されませんが、誤ったユーザー名またはパスワードが返されます。

if($st->num_rows() == 1){さんが見ているところでは、問題が起こることはありませんが、問題を解決する方法は見つからないようです。あなたは結果を確認するために$st->num_rows() == 1を使用

public function Login($Email, $Password){ 
     if(!empty($Email) && !empty($Password)){ 

      $st = $this->db->prepare("SELECT * FROM usertable WHERE Email=? and Password=?"); 
      $st->bind_Param("ss", $Email,$Password); 
      //$st->bindParam(2, $Password); 

      $st->execute(); 



      if($st->num_rows() == 1){ 
        echo 'Login Was Sucessfull'; 
         header('Location: Success.php'); 
      }else { 

       echo 'Incorrect Username Or Password'; 
      } 
     }else { 
     echo '<script type="text/javascript">alert("Please Enter Username or Password");</script>'; 
     } 


} 
+3

として出力されている場合

サイドノートも、PHPのヘッダは動作しません。**プレーンテキストのパスワードを保存しないでください!** *** PHPの[組み込み関数]を使用してください( http://jayblanchard.net/proper_password_hashing_with_PHP.html)***パスワードセキュリティを処理する。 5.5より小さいPHPバージョンを使用している場合、 'password_hash()' [互換パック](https://github.com/ircmaxell/password_compat)を使用することができます。 ***ハッシュする前に[パスワードをエスケープする](http://stackoverflow.com/q/36628418/1011527)***または他のクレンジングメカニズムを使用する必要はありません。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –

+1

'header()'はあなたを他のURLにリダイレクトします。あなたは 'header()'が何をするのか知っていますか? –

+0

あなたは '$ st-> num_rows()'がその値が何であるかを確認したことが問題だと思いますか? –

答えて

0

、あなたが同じユーザー名/パスワードの組み合わせを持っている場合ので、あなただけ結果を持っている場合は、ログイン試行が唯一の仕事と、データベースを確認するか、あなたの代わりに$st->num_rows() > 0を使用することができます。何かがすでにecho 'Login Was Sucessfull';

関連する問題