我正在尝试使用ajax处理我的登录表单,我有一个html表单和一些ajax脚本,它将数据发布到我的login.php页面并检查用户身份验证。然后,如果用户已通过身份验证,则会将其重定向到仪表板,否则如果用户未通过身份验证,则需要显示警报消息。
由于某种原因,这不起作用。请有人告诉我我哪里出错了。提前谢谢。
HTML:
<div class="home_column">
<div class="login_form">
<form name="login" id="login">
<h21>Username</h21><br/>
<input type="text" class="login_form_front" id="myusername" name="myusername"><br/>
<h21>Password</h21><br/>
<input type="password" class="login_form_front" autocomplete="off" id="mypassword" name="mypassword">
<br/>
<input type="submit" class="buttons_login" value="Login" id="submit" name="submit">
</form>
</div>
</div>
的Ajax:
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(function(){
var sel_stud2 = $('#myusername').val();
var sel_stud1 = $('#mypassword').val();
//alert('You picked: ' + sel_stud);
$.ajax({
type: "POST",
url: "include/check_log.php",
data: {theOption2: sel_stud2, theOption3: sel_stud1},
success: function(whatigot) {
//alert('Server-side response: ' + whatigot);
alert("Login failed.");
} //END success fn
}); //END $.ajax
}); //END dropdown change event
}); //END document.ready
</script>
我的login.php页面:
<?php
session_start();
include("config.php");
$tbl_name="internal_users";
//Get value posted in by ajax
$myusername = $_POST['theOption2'];
$mypassword = $_POST['theOption3'];
$sql = "select * from $tbl_name where user_name = '$myusername' and password = '$mypassword'";
$result = mysql_query($sql) or die( mysql_error() );
$row = mysql_fetch_assoc($result);
if($row) {
header("location:../dashboard.php")
}else{
} ?>
答案 0 :(得分:0)
不要忘记header()的cal不会改变你网站的网址。只会转发AJAX电话!
否则代码似乎没问题。但正如海基金所说,请看http://php.net/manual/de/function.mysql-real-escape-string.php
检查您的SQL语句是否运行。在else语句中执行一些输出并在jquery的success方法中捕获它而不是此Login failed消息:
alert(whatigot);