所以我试图做一些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
我不明白为什么。一切似乎都很好。如果有人能告诉我哪里出错了,我将不胜感激。
答案 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)
查看您真正得到的内容。