在PHP中,我有一个将数据提交给PHP脚本的表单。 PHP脚本使用以下命令打印值:
$raw_post = file_get_contents('php://input');
print_r($raw_post);
print_r($_POST);
print_r($_REQUEST);
所有这些都返回空/空数组EXCEPT $ raw_post(aka,php:// input)。
Chrome开发人员工具还会显示这些值已作为POST请求通过有效负载提交,状态为200 OK,但PHP根本没有将它们设置为$ _POST数组。
$ raw_post中的结果:
{"company_name":"test","primary_contact":"test","address":"test","function":"test","phone":"test","fax":"test","url":"test"}
结果$ _POST:
Array
(
)
结果$ _REQUEST:
Array
(
)
我无法找到解决此问题的方法......有人可以帮忙吗?
表单从AngularJS提交到PHP脚本。
新代码(网址编码):
app.factory('Companies', function($resource) {
return $resource('/api.php/companies/:id', {id:''}, {
'query': {method: 'GET', isArray: true},
'view': {method: 'GET', isArray: true},
'save': {
method: 'POST',
isArray: true,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}},
});
});
答案 0 :(得分:1)
$raw_post = file_get_contents('php://input');
print_r($raw_post);
那已经给你发了JSON,只是解码它:)
$values=json_decode($raw_post,true);
现在,如果您想将所有这些数据存储回$_POST
,您只需执行
$_POST=json_decode($raw_post,true);
它会为您提供发布的数据。
<强>输出强>
Array
(
[company_name] => test
[primary_contact] => test
[address] => test
[function] => test
[phone] => test
[fax] => test
[url] => test
)
<强> Fiddle 强>
答案 1 :(得分:0)
试试这个,
print_r(json_decode($raw_post));
看起来你有json数据。