我现在已经在这里停留了一段时间,我不太熟悉将ajax合并到我的项目中所以我不知道这里有什么问题你能否告诉我如何使这项工作有所帮助?
我想以模态登录,我想使用ajax警告用户输入错误数据或根本不存在。
这是我的模态
<div class="wrap-input100 validate-input" data-validate = "Valid email is required: ex@abc.xyz">
<input class="input100" type="text" name="username" id="username" placeholder="Email">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-envelope" aria-hidden="true"></i>
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Password is required">
<input class="input100" type="password" name="password" id="password" placeholder="Password">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-lock" aria-hidden="true"></i>
</span>
</div>
<div class="container-login100-form-btn">
<button name="login_button" id="login_button" class="login100-form-btn">
Login
</button>
</div>
这是我的ajax脚本
<script >
$(document).ready(function(){
$('#login_button').click(function(){
var username = $('#username').val();
var password = $('#password').val();
if(username != '' && password != '')
{
$.ajax({
url:"../page/login.php",
method:"POST",
data: {username:username, password:password},
success:function(data)
{
//alert(data);
if(data == 'No')
{
alert("Wrong Data");
}
}
});
}
});
</script>
这是我的login.php
<?php
include '../php_include/db_connection.php';
$username = $mysqli->escape_string($_POST['email']);
$result = $mysqli->query("SELECT * FROM users WHERE email='$email'");
if ( $result->num_rows == 0 ){
echo mysqli_error($mysqli);
echo 'No';
}
else { // User exists
$user = $result->fetch_assoc();
if ( password_verify($_POST['password'], $user['password']) ) {
$_SESSION['logged_in'] = true;
header("location: user.php");
} else {
echo 'No';
}
}
答案 0 :(得分:0)
您的PHP文件中存在错误:
$username = $mysqli->escape_string($_POST['email']);
$result = $mysqli->query("SELECT * FROM users WHERE email='$email'");
您使用$username
作为用户名,但在您的sql中使用的是$email
。改为使用相同的变量:
$username = $mysqli->escape_string($_POST['email']);
$result = $mysqli->query("SELECT * FROM users WHERE email='$username'");