我的网站没有设置enctype="multipart/form-data"
的表单中的流程数据。但是,即使php manual表示它不适用于enctype,'php://input'
也会获取数据。我认为这可能是一些错误的设置,但我不知道它可能是什么。
一些代码:
<?php
var_dump($_REQUEST);
echo file_get_contents("php://input");
?>
<form id="slideForm" action="" method="post" enctype="multipart/form-data">
<input type="text" name="test">
<input type="submit" name="submit" id="submit" value="ADD"/>
</form>
更新
我一直在接触托管我网站服务器的公司的支持,我们已经解决了这个问题。我不完全确定问题是什么,但是它的服务器和php有点时髦。我不使用PHP 7.0或PHP 5.6,但如果我使用他们的原生(PHP 5.5),它的工作没有问题。
答案 0 :(得分:0)
我不明白你想要POST哪种类型的数据。如果只是一个测试你应该只有:
<?php
var_dump($_POST);
?>
<form id="slideForm" action="" method="post">
<input type="text" name="test">
<input type="submit" name="submit" id="submit" value="ADD"/>
</form>
如果您想发布文件,您必须:
<?php
var_dump($_POST);
?>
<form id="slideForm" action="" method="post" enctype="multipart/form-data">
<input type="file" name="test">
<input type="submit" name="submit" id="submit" value="ADD"/>
</form>
确保您能够在php服务器上发布数据。 检查这些php变量:
upload_max_filesize
upload_tmp_dir
file_uploads
答案 1 :(得分:0)
在大多数情况下,您根本不需要使用此属性。默认值(即,如果您根本不使用此属性)是&#34; application / x-www-form-urlencoded&#34;,这对于几乎任何类型的表单数据都是足够的。一个例外是您要进行文件上传。在这种情况下,您应该使用&#34; multipart / form-data&#34;。 尝试使用以下代码进行echo&#34; test&#34;数据
<?php
var_dump($_REQUEST);
echo $_REQUEST['test'];
?>
<form id="slideForm" action="" method="post">
<input type="text" name="test">
<input type="submit" name="submit" id="submit" value="ADD"/>
</form>
答案 2 :(得分:0)
我尝试了您的代码,它按预期工作: $ _REQUEST正确填充,php输入为空。
考虑到您的代码看起来很好,并且它在我的服务器上按预期工作,我建议您检查.htacces(或等效的)过滤/重写模块,甚至是服务器配置设置甚至页面编码。
99%这不是代码本身。
答案 3 :(得分:0)
SELECT * FROM mytable WHERE COUNT(color) > 1
答案 4 :(得分:0)
当您发送标头Content-Type:multipart/form-data;
时,PHP将请求中的数据解析为$_POST
和$_FILES
并清除输入缓冲区。为了读取输入缓冲区,您应该删除该标头。