问题:
$ _ POST数组为空,即使文件(“php:// input”);正确返回值(见下文)
我的表单:
<form class="form-horizontal" name="loginform" method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<div class="form-group">
<label for="">Username</label>
<input class="form-control" type="text" step="any" name="username" value="">
</div>
<div class="form-group">
<label for="">Password</label>
<input class="form-control" type="password" step="any" name="password" value="">
</div>
<div class="form-group">
<input class="btn btn-warning" type="submit" name="submit" value="Submit">
</div>
</form>
<?php
$mypostdata = file("php://input");
print "<pre>";
var_dump($_POST);
var_dump($mypostdata);
print "</pre>"
?>
我的输出:
array(0) { } array(1) { [0]=> string(46) "username=aravind&password=secret&submit=Submit" }
答案 0 :(得分:1)
当我使用PhpStorm(第三方应用程序)访问该文件时,它使用的链接是(&#34; http:// localhost:63342 /emitest/loginform.php**& #34;)和$ _POST没有用。
当我通过直接在浏览器中输入链接(&#34; http:// localhost /emitest/loginform.php")来访问该文件时,$ _POST正常工作。
因此,目录/端口是问题,这就是$ _POST丢失数据的地方。
答案 1 :(得分:-1)
无论表格如何,您的PHP代码都会执行。
你必须在if:
中包含它<?php
if (isset($_POST['submit'])) { // i.e. if the submit button has been clicked
$mypostdata = file("php://input");
print "<pre>";
var_dump($_POST);
var_dump($mypostdata);
print "</pre>"
}
?>
有关使用PHP的表单的更多信息:http://php.net/manual/en/tutorial.forms.php或http://www.html-form-guide.com/php-form/php-form-action-self.html