PHP$_POST数组在表单提交时始终为空


PHP $_POST array always empty upon form submission

我首先要说的是,我已经看到了几个类似的问题,但我还没有找到解决问题的方法。

我在一个名为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"之外,我什么都没用。这显然是绝对不允许的。