我想通過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");
}
我有一個用戶名和密碼,每次我登錄時間的表,它只是刷新登錄頁面。我現在檢查了我的代碼幾次,我似乎無法找到爲什麼它不起作用的原因。我有一種感覺,這是我的一個愚蠢的錯誤,但我看了很多例子,他們都有幾乎相同的東西。任何幫助表示讚賞。
[小博](http://bobby-tables.com/)說***腳本是在對SQL注入攻擊的風險。(HTTP:/ /stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)***瞭解[編制](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)來處理密碼安全性。如果您使用的PHP版本低於5.5,則可以使用'password_hash()'[兼容包](https://github.com/ircmaxell/password_compat)。確保你*** [不要越獄密碼](http://stackoverflow.com/q/36628418/1011527)***或在哈希之前使用其他任何清理機制。這樣做*更改密碼並導致不必要的附加編碼。 –
你沒有做任何事情來阻止表單重新加載頁面。你應該使用開發者控制檯來看看發生了什麼。嘗試將'type =「submit」'更改爲'type =「按鈕」' – j08691