0

我有一个 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"');
}
?>

正如我所说,这只是一个测试脚本,只是为了了解更多信息。

4

1 回答 1

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 表单中,您需要有 2 个 ID 为“用户名”和“密码”的输入,以便上述代码可以工作。

于 2012-11-26T16:42:30.427 回答