Javascript $HTTP_原始_发布_数据错误-未发布数据
我试图通过Javascript $HTTP_原始_发布_数据错误-未发布数据,javascript,php,jquery,ajax,jquery-confirm,Javascript,Php,Jquery,Ajax,Jquery Confirm,我试图通过jquery confirm插件执行AJAX请求,通过AJAX加载函数从表单加载文件数据,然后将信息更新到PHP文件,最终更新到数据库 但是,这会导致以下错误 Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_d
jquery confirm
插件执行AJAX请求,通过AJAX加载函数从表单加载文件数据,然后将信息更新到PHP文件,最终更新到数据库
但是,这会导致以下错误
Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0
Warning: Cannot modify header information - headers already sent in Unknown on line 0
我甚至尝试加入一个空白变量,因为这个错误的意思是它没有将数据发布到页面上。这只是抛出一个未定义的索引,确认它没有发布数据
这个网站上的一些帖子说要更改php.ini
文件等,因为我使用的是大学服务器,我们没有权限更改这些文件
这是我的JS文件,它正在执行AJAX功能
function addSubject(){
$("#addBtn").on('click', function() {
$.confirm({
title: 'Manage Subjects',
content: 'url: addSubjectForm.html',
buttons: {
addSubject: {
text: 'Add New Subject',
btnClass: 'btn-info',
action: function () {
var findSubject = this.$content.find('input#newSubject');
var findDescript = this.$content.find('input#newDescript');
var newSubject = findSubject.val();
var newDescript = findDescript.val();
if (newSubject === '' || newDescript === '') {
$.alert({
content: 'One of the fields from the form was empty',
type: 'red'
});
return false;
} else {
$.ajax({
url: "../ajax/admin/addSubject.php",
type: "POST",
data: {title: newSubject, description: newDescript, blank: 'blank'},
cache: false,
contentType: false,
processData: false,
success: function (result) {
$.alert({
content: result,
type: 'green'
});
}
});
console.log(newSubject + " " + newDescript);
}
}
},
close: {
text: 'Close',
btnClass: 'btn-danger'
}
}
});
});
}
我访问变量的PHP页面如下:
<?php
$title = filter_input(INPUT_POST, "title");
$description = filter_input(INPUT_POST, "description");
$test = $_POST['blank'];
echo $test;
echo "$title $description";
试试:
$title=filter\u input(input\u POST,'title',filter\u DEFAULT,filter\u REQUIRE\u数组);
$description=filter\u input(input\u POST,'description',filter\u DEFAULT,filter\u REQUIRE\u数组) 如警告中所述,$HTTP\u RAW\u POST\u数据已被弃用,请改用:
$raw_post_body = file_get_contents("php://input");
用于阅读原始正文内容
但从我在JS代码中看到的情况来看,您发送的是一个普通的www url编码表单,因此建议使用$u POST。
如果仍然不起作用,请在$\u POST上执行var\u转储或打印,以便在POST请求中没有发送任何内容时进行调试