0

所以我试图做一些 Ajax 登录,我的脚本中有这段代码。它是一个 javascript,当单击提交表单时,它会使用变量 email、password 和 is_ajax 提交到 login_p.php。

<script>
     $(document).ready(function() {
        $('.login-button').click(function() {
            var action = $('#login-form').attr('action');
            var form_data = {
                email: $("#email").val(),
                password: $("#password").val(),
                is_ajax: 1
            };

            $.ajax({
                type: "POST",
                url: action,
                data: form_data,
                success: function(response)
                {
                    if(response == 'success'){
                        document.location="index.php?authi";
                    } 
                }
            });

            return false;
        });
    });
</script>

这是 login_p.php 中的信息

<?php    
    session_start();
    $is_ajax = $_REQUEST['is_ajax'];
    if(isset($is_ajax) && $is_ajax)
    {
        $email = $_REQUEST['email'];
        $password = $_REQUEST['password'];

        include('db.class.php');
        $db = new db();
        $query = $db->query("SELECT * FROM user WHERE email ='" . $email . "'");
        $rows = $db->countRows($query);
        if($rows == 1) {
            $results = $db->getRows($query);
            foreach($results as $result) {
                extract($result);
                $_SESSION['email'] = $email;
            }
        }
    }
?>

但我得到的错误是:

Undefined index: is_ajax

我不知道为什么。一切似乎都运行良好。如果有人能告诉我哪里出错了,我将不胜感激。

4

1 回答 1

1

Undefined index是 PHP NOTICE,而不是错误。你得到它是因为你试图访问$_REQUEST['is_ajax'],但$_REQUEST数组中没有设置索引'is_ajax'。

您可以将error_reportingphp.ini 中的设置更改为排除E_NOTICE,也可以将代码更改为类似于:

if (isset($_REQUEST['is_ajax'])) {
    $is_ajax = $_REQUEST['is_ajax'];
    // ...
}


如果您认为您确实传递了is_ajax参数,请尝试执行var_dump($_REQUEST)以查看您真正得到的结果。

于 2012-11-19T15:32:37.463 回答