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の通知であり、エラーではありません。アクセスしようとしているために取得しています$_REQUEST['is_ajax']が、インデックス'is_ajax'が$_REQUEST配列に設定されていません。

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 に答える