我正在使用ajax和php登錄,在這種情況下,我實際上正在登錄succesfuly。但我試圖在登錄時發出警報並刷新頁面。 當我嘗試登錄時,它給我提供了錯誤並且沒有提醒。但是,如果我刷新頁面,我看到我有PHP會話。我不明白爲什麼。Ajax登錄響應錯誤
這是我的代碼;
<script>
$(document).ready(function(){
$('#login_btn').click(function(){
var email = $('#email').val();
var password = $('#password').val();
if(email == '' || password == ''){
$("#login_error").html("*** Please enter your email/password");
}else{
$('#login_error').html("<strong class='text-success'>Validating...</strong>");
$.ajax({
url: "login.php",
method: "post",
data:{email:email, password:password},
success: function(data){
if (data === 'yes') {
window.location.reload();
}else{
$('#login_error').html("<strong class='text-danger'>ERROR...</strong>");
}
}
});
}
});
});
</script>
登錄PHP:
<?php
session_start();
include ('../config/setup.php'); #database connection
if(isset($_POST['email'])){
$q = "SELECT * FROM users WHERE email = '$_POST[email]' AND password = '$_POST[password]'";
$r = mysqli_query($dbc, $q);
if(mysqli_num_rows($r) > 0){
$_SESSION['email'] = $_POST['email'];
echo "yes";
}else{
echo "no";
}
}
?>
HTML:(一模內使用的登錄表單)
<div class="modal-body">
<div class="form-horizontal">
<div class="form-group">
<label for="email" class="col-sm-4 control-label">Email</label>
<div class="col-sm-8">
<input type="email" class="form-control" name="email" id="email" placeholder="Account Email">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-4 control-label">Password</label>
<div class="col-sm-8">
<input type="password" class="form-control" name="password" id="password" placeholder="Account Password" >
</div>
</div>
<div class="form-group">
<div class="col-sm-1"></div>
<div align="center" class="col-sm-10">
<button name="login_btn" id="login_btn" class="btn btn-success btn-block text-center"><span id="loader_before" class="glyphicon glyphicon-log-in" aria-hidden="true"></span><i id="loader" class="fa fa-spinner fa-spin fa-x fa-fw"></i> Log in to Account</button>
</div>
<div class="col-sm-1"></div>
</div>
</div>
<div align="center" class="container-fluid">
<h6><a href="#"><strong class="text-danger">Forgot your password? Click here..</strong></a></h6>
</div>
<h5><div id="login_error" class="text-warning"></div></h5>
</div>
我試過了你的代碼,沒有給我任何提醒。只有錯誤... –
你能分享這個錯誤嗎?它會幫助我解決問題。你也可以試試下面的sql語句。 $ q =「SELECT * FROM users WHERE email ='」。$ _ POST ['email']。「'AND password ='」。$ _ POST ['password']。「'」; –
錯誤是:我有一個div,id是登錄錯誤。在JavaScript中,我使用這個div來顯示記錄嘗試的情況。當我嘗試登錄時,它會給我$('#login_error')。html(「 ERROR ...」); 而不是刷新頁面(window.location.reload();在Ajax)我刷新頁面,我看到我已經正確登錄。我需要看到我的成功股利,並刷新頁面後,如果我登錄正確。 –