2017-03-03 10 views
3

PHPを使用して非常に単純なMySQLログイン機能を作成しようとしています。ユーザー名とパスワードはAJAXを介してPHPに送信されます。 AJAX機能は次のとおりです。PHPとAJAXリクエストを使用した簡単なMySQLログイン

function login(){ 

var user = document.getElementById("username").value; 
var pass = document.getElementById("password").value; 

    $.ajax({ 

     url : "login.php", 
     type : "POST", 
     data : { 
      username : user, 
      password : pass 
     }, 
     success : function(response){ 
      alert(response); 
     }, 
     error : function(response){ 
      alert(response); 
     } 
    }); 
} 

ログインスクリプト:

$conn = new mysqli($host, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
//echo "Connected successfully"; 
$user = $_POST['username']; 
$pass = $_POST['password']; 


$query="SELECT * FROM Users WHERE email = '$user' AND password ='$pass' LIMIT 1"; 

$result = $conn->query($query); 
$count = $result->num_rows; 
if($count == 1){ 
    echo "success"; 
}else{ 
    echo "incorrect login details"; 
} 

$conn->close(); 
?> 

$カウントは、ユーザー名とパスワードが正しい場合でも、常にゼロであるようです。 PHPでユーザ名とパスワードが正常に取得されていることを確認しました。

さらに単純なクエリ、SELECT * FROMユーザーも0

エコーしようとするまたはオブジェクトオブジェクト内のvar_dumpの$結果結果が表示されているの数を返します。

誰もこのコードで目立った問題を見ることはできますか?新鮮な目のセットは非常に高く評価されます。

注:この単純な関数は安全であるようには設計されていないため、安全でないクエリの書式設定が行われます。

+0

$ count = mysqli_num_rows($ result);これを試してみてください – cfprabhu

+0

あなたはエコーをしていただけますか?** $ query ** ?? – HoangHieu

+0

@cfprabhuアラートはたいてい「間違ったログインの詳細」を表示し、たまにオブジェクトオブジェクトを表示します。 – denverCoder9

答えて

0

以下を文字列に変更し、PHPスクリプトを実行することをお勧めします。文字列がDBに表示される場合は、PHPスクリプトによって引き起こされた場合は除外できます。この場合、htmlおよびajax要素になります。

//$user = $_POST['username']; 
//$pass = $_POST['password']; 

$user = 'userTest'; 
$pass = 'userPass'; 
+0

お寄せいただきありがとうございます!この問題を解決し、$ db_name変数のスペルミスを修正しました。私はそれがもっと早く見えなかったとは信じられません。 – denverCoder9

+0

偉大な、私は助けることがうれしいです。 – denski

関連する問題