PHP $ _POST不返回值

时间:2015-11-19 14:26:12

标签: php angularjs forms post

在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'}},
    });
});

2 个答案:

答案 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数据。