【发布时间】:2018-01-12 23:23:41
【问题描述】:
我搜索了其他几个类似的问题,但没有一个能帮助我。
我正在处理一个将使用 PHP 发布到数据库的表单,但未发送发布数据。 $_POST 是一个空数组,file_get_contents('php://input') 返回一个空字符串。
这是一个 MWE。
HTML:
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="content">
<form action="formprocessor.php" method="post">
<label>Name: </label>
<input name="name" type="text" />
<label>Email: </label>
<input name="email" type="text" />
<input name="mySubmit" type="submit" value="Submit!" />
</form>
</div>
</body>
</html>
formprocessor.php:
<?php
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
var_dump(file_get_contents('php://input')); //returns string(0) ""
//or
var_dump($_POST); //returns array(0) {}
echo $_POST;
?>
html 和 php 位于同一目录中的不同文件中。提交此表单后,我在浏览器中得到了这个:
string(0) "" array(0) { } Array
在 Windows Server 2008 上运行 PHP 5.3.28
我相信代码没有问题,但可能与服务器或 php 配置有关。任何方向都会有帮助。
我已经检查了配置文件。我能确定的唯一相关设置是 post_max_size,它的值是 8M。
【问题讨论】:
-
不是你的问题,但不要
echo var_dump()。相反,var_dump()单独产生输出总是自己产生,从不返回字符串到echo。 -
发布的代码都是正确的。您是否已经有其他 PHP 表单在此服务器上正常运行?我正在尝试在 PHP 或 Win Server(我很生疏)中考虑会阻碍 POST 的配置。
-
已注明并更正。谢谢。
-
HTML 和 PHP 文件是否在同一个文件夹中?如果没有,那么您需要这样做或将表单的操作修复到正确的 URL。
-
使用浏览器中的 Web 开发人员工具检查您的请求,以检查是否有任何内容被实际发布