【问题标题】:PHP file_get_contents("php://input") missing request contentPHP file_get_contents("php://input") 缺少请求内容
【发布时间】:2017-08-14 12:02:47
【问题描述】:

我在 php codeigniter 中遇到问题,将数据从客户端发布到服务器,如下所示,在服务器中,我曾经通过 file_get_contents("php://input") 读取发布数据。它截断数据并仅显示前 50 个字符。在我以前的服务器上运行良好,现在我们已经更换了新服务器,之后它出现了问题。

var base_url = "http://www.mydomain.in/";
$.ajax({
             url:base_url+ "index.php/api/transactions/status",
             data: {"username":"logimax","passwd":"pass@2015","status":"Y"},
             dataType:"JSON",
             type:"POST",
             success:function(data){
                console.log(data);
                      },
                      error:function(error)  
                      {
                console.log(err);       
                      }  
          });

萤火虫报告: 我们可以像下面这样在 firebug 中监控 post 数据和响应,

请求网址:http://www.mydomain.in/index.php/api/transactions/status 请求方法:POST

请求头:Accept:application/json, text/javascript,

表单数据 用户名:logimax 密码:pass@2015 状态:是的

回应: string(50) "用户名=l

在服务器中 服务器端代码:使用 codeigniter REST 服务。

public function transactionsByStatus_post()
{
    var_dump(file_get_contents('php://input')); // Its getting truncate. Not fully displaying the values.

//Response sending as JSON Format
}

【问题讨论】:

  • 问题是,你为什么要这样阅读你的输入?为什么不使用$_POST
  • print_r($_POST);它还返回截断的值。输出看起来像 Array ( [username]
  • 然后,检查您的 php.ini 选项 max_post_size 并将其增加到足够公平;
  • 我想这个并增加了这个也已经 post_max_size = 256M
  • 在不使用ajax的情况下正常发布请求会发生什么?

标签: php codeigniter file-get-contents


【解决方案1】:

检查是否在您的 php.ini 中启用了 xdebug 扩展。

如果是这样,不妨试试这些设置:

xdebug.var_display_max_data=-1
xdebug.var_display_max_children=-1
xdebug.var_display_max_depth=-1

【讨论】:

    猜你喜欢
    • 2012-12-27
    • 1970-01-01
    • 2016-06-02
    • 2014-06-11
    • 1970-01-01
    • 2016-08-29
    • 2015-06-14
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多