我有一个PHP脚本,仅用于学习目的。我想在我的网络应用程序上使用ajax表单。从未做过,这是测试PHP脚本。所以我想通过ajax表单名称和密码发送,在php脚本中将检查它是否正确并且它将返回成功(当登录和密码正确时)或错误(当不匹配时)。我的问题是如何发送它并在js或jQuery中正确接收它。任何可以帮助我的人都可能有更好的想法和/或更好的安全功能吗?
我在stackoverflow上找到并尝试了这个脚本:
//bind an event handler to the submit event for your login form
$('#login_form').live('submit', function (e) {
//cache the form element for use in this function
var $this = $(this);
//prevent the default submission of the form
e.preventDefault();
//run an AJAX post request to your server-side script, $this.serialize() is the data from your form being added to the request
$.post($this.attr('action'), $this.serialize(), function (responseData) {
//in here you can analyze the output from your server-side script (responseData) and validate the user's login without leaving the page
});
});
我想知道在php脚本中它是否能像这样工作?:
<?php
$username = $_GET["name"];
$password = $_GET["password"];
if($username="*****" && $password==********)
{
header('Location:http://*****************/jaz/imes/index.html?login="success"');
}else{
header('Location:http://*****************/jaz/imes/index.html?login="error"');
}
?>
正如我所说,这只是一个测试脚本,只是为了更多地了解它。
答案 0 :(得分:3)
首先,如果您使用的是jQuery 1.8+,请尝试使用on()方法 另一件事是您应该在PHP脚本中为该用户设置会话,然后使用js重定向用户:
jQuery的:
$('#login_form').on('submit', function(){
$.post($this.attr('action'), $this.serialize(), function (responseData) {
if(responseData == 'success'){
window.location = "userpanel.php"
}else{
alert('NO MATCHES');
}
});
});
PHP:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
// VALIDATING HERE, in db maybe?
if($username == 'blah' && $password == 'blah'){
$_SESSION['username'] = $username;
echo "success";
}else{
echo "failed";
}
?>
在您的HTML表单中,您需要输入两个ID为“username”和“password”的ID,以便上述代码可以正常工作。