简单HTML+PHP表单提交后$_POST为空的问题排查求助
PHP表单提交后$_POST为空排查步骤
- 首先确认前端页面的访问方式:必须通过http/https协议访问(地址栏开头为http://或https://),禁止直接本地打开html文件(地址栏开头为file://),本地文件协议无法正常发送POST请求到php文件,会导致参数丢失。
- 确认文件路径匹配:post.php文件需要和前端表单页面放在站点的同一级目录下,提交后跳转的地址不能出现404、路径错误的情况。
- 表单属性补充:可以给form标签显式声明POST编码类型,避免环境默认配置异常:
<form action="post.php" method="post" enctype="application/x-www-form-urlencoded"> - PHP服务端配置校验:检查php.ini配置文件的以下参数:
post_max_size不能设置为0(0代表禁用POST提交),默认8M为正常配置variables_order配置值必须包含字符P,例如GPCS才会正常解析生成$_POST全局变量enable_post_data_reading必须设置为On,设为Off时PHP不会读取POST请求体
- 确认参数发送状态:在post.php中新增一行代码,打印原始请求体数据:
如果该行输出有提交的参数内容但$_POST为空,属于PHP配置解析问题;如果该行也为空,说明前端根本没有发送参数到后端。var_dump(file_get_contents('php://input')); - 浏览器请求校验:按F12打开开发者工具,切换到「网络」面板,提交表单后找到post.php对应的请求条目:
- 确认请求方法为POST
- 查看「请求载荷」/「表单数据」板块,确认n1、n2、resultado三个参数已经正常携带
上述校验完成后即可定位问题根源。
你提供的代码本身逻辑无错误,本地测试可以正常获取到$_POST的内容,按照上面步骤排查即可解决。
内容的提问来源于stack exchange,提问作者Andre
相关产品推荐
相关产品推荐

