我通常会自动上传脚本并在远程主机上测试它们,但是前几天我独立安装了魔法三重奏Apache,PHP和MySQL,以便更快地测试小问题。今天它发现$ _POST数组是完全空的。它是我正在测试的基本形式,它完美地适用于远程主机,所以我检查了php.ini文件。我发现enable_post_data_reading
已设置为关闭并进行了评论(尽管文档说它默认启用)。我认为那是问题,但没有。我重新启动了Apache甚至笔记本,但$ _POST数组仍为空,输出Notice: Undefined index: name in C:\Users\Marco\Proj\untitled\insert.php on line 3
。
有人有任何建议吗?
(我只传递字符串,所以问题甚至不是post_max_size
选项)
谢谢!
虽然它无用我反正发布代码
form.html
<form action="insert.php" method="post">
<input type="text" name="name" placeholder="name" style="display:block" />
<input type="text" name="code" value="" placeholder="code" style="display:block" />
<input type="text" name="price" placeholder="price" style="display:block" />
<label>Show</label><input type="checkbox" name="show" value="checked" />
<input type="submit" value="inserisci" style="display: block" />
</form>
insert.php
<?php
include "filterFunctions.php";
$data = array("name" => $_POST["name"],
"code" => $_POST["code"],
"price" => $_POST["price"],
"checkbox" => $_POST["show"]);
print_r($_POST);
[编辑] 按照 Swatantra K 的建议,我检查了POST是否使用echo file_get_contents('php://input');
,这就是它显示的内容:
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="name" Marco
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="code" 35DW
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="price" 99,9
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="show" checked
------WebKitFormBoundarysqxwAAdf3E55NZUK--
Notice: Undefined index: name in C:\Users\Marco\Proj\untitled\insert.php on line 4
Notice: Undefined index: code in C:\Users\Marco\Proj\untitled\insert.php on line 5
Notice: Undefined index: price in C:\Users\Marco\Proj\untitled\insert.php on line 6
Notice: Undefined index: show in C:\Users\Marco\Proj\untitled\insert.php on line 7
Array ( )
我想,这意味着它有效并且插入的值存在,但我仍然无法弄清楚问题及其解决方案是什么。另外,因为var_dump($_POST);
仍显示array(0) { }
。
任何线索?
答案 0 :(得分:1)
尝试设置
php_value post_max_size = 256M
或检查POST是否有效
echo file_get_contents('php://input');
答案 1 :(得分:0)
你有两个带有name =“name”的输入字段,所以你在php脚本中引用这两个字段,所以从中删除一个,并为form定义type属性并赋值multipart。希望这可行。