php post 奇怪的问题

发布于 2022-09-12 23:52:50 字数 1213 浏览 17 评论 0

最近使用docker搞了一个Php8的版本,但是遇到一个很奇怪的问题。在post数据的后返回的结果会把请求体的参数一起返回回来 比如如下

curl -X POST \
  http://test.com/open/test \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: d357ac6d-c2f0-237f-baa8-dbc6c759d6e2' \
  -d '{
    "commodity_id": 1
}'

返回的结果如下

{"commodity_id": 1}{"code":success}

真正的相应前面带了个请求体。
目前docker php8.0.2有这个问题,PHP-BUG网站上也有这个问题描述
https://bugs.php.net/bug.php?...

我的环境:
机器:CentOS Linux release 7.8.2003 (Core)
php-docker : https://github.com/docker-lib...
nginx: nginx/1.12.1
测试: 使用Post方法提交表单信息,刚启动的容器是正常的,过一段时间就会出现描述的问题,测试文件内容只需要一个Index.php 包含内容

<?php
echo 'string'; 
exit;

测试数据:

curl -X POST \
  http://test.com/ \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'postman-token: 7783c00c-347f-e74f-7316-2a9bb632eb47' \
  -d points=10

我本地的mac环境倒是正常的,但是服务器不正常

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

幻梦 2022-09-19 23:52:50

这和PHP无关,是你的接口自己输出的内容。

不如归去 2022-09-19 23:52:50

get_included_files()只有一个 index.php文件

index.php文件内容

<?php
echo 'success';
exit;

使用Postman,请求方式选择Post,选择form-data 或者是raw
请求体数据无所谓,返回结果会偶尔产生请求体添加在返回结果前面

其他就没什么东西,很简单。还有一个问题就是我打印php配置文件的时候 auto_prepend_file 这个值会变化

扎心 2022-09-19 23:52:50

我也遇到了这个问题,配置都正确,但是总是会有这个问题出现.
后来看了:https://bugs.php.net/bug.php?...
也有同样的问题,我依照描述,php.ini修改为了:
allow_url_include = Off
auto_prepend_file = none;
并且将php-fpm的监听端口从9000变更为了其他端口,我变为了8999,
到目前为止,10几个小时了,还没有在发生之前的问题了,楼主可以借鉴一下
你还需要挂载出来一个文件,修改配置的,下图所示:
image.png

image.png

初见 2022-09-19 23:52:50

解决了没啊,我真的服了,我以为这是我的问题结果还能搜到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文