为什么File_get_contents('php:// input')返回null的获取方法? 我经历了一个奇怪的问题,其中有一个php脚本,该脚本正常工作,直到我的服务器迁移到Cludlinux v9.5.0,并使用CPANEL版本126.0.9。 在下面的示例中,我正在使用Postman发送...

问题描述 投票:0回答:0

get请求→file_get_contents('php:// input')返回null. post请求→数据已成功检索和解码。

Get

post
  1. 这里是我的php脚本的样本提取物:
  2. <?php echo strtoupper($_SERVER['REQUEST_METHOD']) . "\n\n\n"; $data = json_decode(file_get_contents('php://input'), true); var_dump($data); ?>

sissue: 之前迁移:该脚本可以通过get request进行效果。 迁移后:php://使用get时输入返回null。 post,put,补丁正常。

可能的原因和问题:

Cloudlinux v9.5.0中的服务器配置更改,可以防止获得主体的请求?

  • 有任何MOD_SECURITY规则或PHP设置,可以从获取请求中剥离请求实体?
我应该使用$ _get而不是php://输入for get requests吗? (我更喜欢在方法中保持身体格式一致。)

有解决方法可以允许获取请求以包含JSON身体数据吗?
  1. 将感谢有关此问题的任何见解或解决方案。预先感谢!
  2. 检查mod_security规则,以查看他们是否正在从获取请求中剥离身体。 确保PHP设置允许从php://input读取输入数据。 cagefs和live的配置正确。
  3. <?php echo strtoupper($_SERVER['REQUEST_METHOD']) . "\n\n\n"; if ($_SERVER['REQUEST_METHOD'] === 'GET') { $data = $_GET; } else { $data = json_decode(file_get_contents('php://input'), true); } var_dump($data); ?>
php apache http http-get
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.