POST未知原因(本地主机)

我通常会自动上传脚本并在远程主机上测试它们,但是几天前,我独立安装了魔术三重奏Apache,PHP和MySQL,以便更快地测试小问题。 今天它发现$ _POST数组是完全空的。 这是一个我正在测试的基本形式,它完全适用于远程主机,所以我检查了php.ini文件。 我发现enable_post_data_reading被设置为Off并且被评论(尽管文档说默认启用了它)。 我认为这是问题,但没有。 我重新启动了Apache甚至是笔记本,但是$ _POST数组仍然是空的,输出Notice: Undefined index: name in C:UsersMarcoProjuntitledinsert.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:UsersMarcoProjuntitledinsert.php on line 4
Notice: Undefined index: code in C:UsersMarcoProjuntitledinsert.php on line 5
Notice: Undefined index: price in C:UsersMarcoProjuntitledinsert.php on line 6
Notice: Undefined index: show in C:UsersMarcoProjuntitledinsert.php on line 7
Array ( )

这意味着,我想,它的工作原理和插入值存在,但我仍然无法弄清楚问题及其解决方案。 还因为var_dump($_POST); 仍然显示array(0) { } 。 任何线索?


尝试设置

php_value post_max_size = 256M

或者检查POST是否有效

echo file_get_contents('php://input');

你有两个名字=“name”的输入字段,所以你在php脚本中引用这两个字段,所以从它中删除一个,并且还要为form定义类型属性并赋值multipart。 希望这可以工作。

链接地址: http://www.djcxy.com/p/57691.html

上一篇: POST empty for unknown reason (localhost)

下一篇: Getting a 403 error after upgrading to php5.5