私は持っているデータベースを照会したページにリダイレクトするAJAX呼び出しで簡単なログインフォームを実装しようとしており、ユーザーをインデックスページにリダイレクトするか、ログインページに戻します。AJAXログインコールに問題があります
HTML:
<form method="post">
<h4> Please Login </h4>
<input id="user" class="name" type="text" placeholder="Enter Username"/>
<input id = "pass" class="pw" type="password" placeholder="Enter Password"/>
<ul>
<li><a href="#">Forgot your password?</a></li>
<li><a href="#">Please Register Here</a></li>
</ul>
<input class="hvr-shrink" id="submitlogin" type="submit" value="Log in"/>
</form>
jQueryの/ AJAX:
$("#submitlogin").click(function() {
var $username = document.getElementById("user").value;
var $pass = document.getElementById("pass").value;
$.ajax ({
url: "login_request.php",
type: "POST",
data: {
'username' : $username,
'password' : $pass
}
});
});
login_request.php
include "connect.php";
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT username, password FROM `CGSB_Compliance`.`nd_users` WHERE username = '$myusername' AND password = '$mypassword'";
$result = mysqli_query($db, $sql);
$count = mysqli_num_rows($result);
if($count == 1){
$_SESSION['user'] = $myusername;
header("location:index.php");
} else {
header("location:login.php");
}
私は、1つのユーザ名とパスワード、そして私がログインするたびに持つテーブルを持っていますログインページを更新するだけです。私はコードを数回チェックしましたが、なぜそれが機能していないのかという理由を見つけることができません。私はそれは私の部分で愚かな間違いだと感じているが、私は多くの例を見て、彼らはすべてほぼ同じことがあります。どんな助けもありがとうございます。
[リトルボビー](http://bobby-tables.com/)と言い*** [。あなたのスクリプトがSQLインジェクション攻撃のリスクがある](HTTPを制限する
preventDefault()
を追加/stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php**** [prepared](http://en.wikipedia.org/wiki/Prepared_statement)のステートメントについては、 [MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –**プレーンテキストパスワードを保存しないでください!**パスワードのセキュリティを処理するには、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)***を確認するか、ハッシュする前に他のクレンジングメカニズムを使用してください。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –
フォームの再読み込みを停止するために何もしていません。あなたは何が起こっているかを見るために開発者コンソールを使うべきです。 'type =" submit "を' type = "buttonに変更してみてください。" – j08691