我首先要说的是,我已经看到了几个类似的问题,但我还没有找到解决问题的方法。
我在一个名为test.php
的页面上有以下内容。
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="UTF-8">
</head>
<body>
<p><?php print_r($_POST); ?></p>
<hr />
<p><?php echo empty($_POST) ? 'Empty' : 'Not empty'; ?></p>
<hr />
<form action="test.php" method="post">
<input id="example" type="text" />
<input id="submit" type="submit" value="Send" />
</form>
</body>
</html>
提交输入中包含文本的表单后,$_POST数组始终为空。由于我看到的几个答案都提到了PHP设置,所以我在下面复制了我的PHP.ini文件。
register_globals = off
allow_url_fopen = off
expose_php = Off
max_input_time = 60
variables_order = "EGPCS"
extension_dir = ./
upload_tmp_dir = /tmp
precision = 12
SMTP = relay-hosting.secureserver.net
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
如果重要的话,我正在使用GoDaddy主机,并且没有以任何重要的方式修改默认设置。如有任何帮助,我们将不胜感激。
您需要使用name属性,而不是ID属性。如果没有元素具有name属性,则数组中不会显示任何数据。
<form action="test.php" method="post">
<input name="example" type="text" />
<input name="submit" type="submit" value="Send" />
</form>
使用name属性而不是或以及id
<input name="example" id="example" type="text" />
name
属性用于在表单提交中发送数据。因此,您必须指定name
属性。
<input id="example" name="example" type="text" />
<input id="submit" type="submit" value="Send" />
除了从form
中删除encoding="text/plain"
之外,我什么都没用。这显然是绝对不允许的。