Ajax和PHP,未定义索引:is_ajax

时间:2012-11-19 15:27:02

标签: php ajax

所以我试图做一些Ajax登录,我的脚本中有这个代码。这是一个javascript,当点击表单提交时,它会使用变量提交给login_p.php 电子邮件,密码和is_ajax。

<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

我不明白为什么。一切似乎都很好。如果有人能告诉我哪里出错了,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

Undefined index是PHP NOTICE ,不是错误。您正在尝试访问$_REQUEST['is_ajax'],但未在$_REQUEST数组中设置索引'is_ajax'。

您可以更改php.ini中的error_reporting设置以排除E_NOTICE,也可以将代码更改为更像:

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

<小时/> 如果您认为确实传递了is_ajax参数,请尝试var_dump($_REQUEST)查看您真正得到的内容。