PHP POST 和 REQUEST 是空的?

PHP POST and REQUEST are empty?

我 运行 和 Raspbian Raspberry Pi(我认为 Model B)。我按照 instructions 安装了一个网络服务器(由于部件看起来过时而进行了一些调整,我还安装了 telnet 以便从 PHP 发送电子邮件)。

我在网页上有一个表格,当我将它设置为使用 GET 方法时 var_dump($_GET) returns 一个预期的输入数组,但是当我将它设置为使用POST 方法 $_POST$_REQUEST 为空 (var_dump returns array(0) {}).

HTML

<form method="POST" enctype="text/plain" id="contactForm">
    <fieldset>
    <legend>Contact us:</legend>
        Name:<br>
        <input type="text" name="firstname" value="first name"><br>
        <input type="text" name="lastname" value="last name"><br>
        E-mail:<br>
        <input type="text" name="mail" value="e-mail address"><br>
        Phone number:<br>
        <input type="text" name="phone" value="phone number"><br>
         Reason for contacting:
        <select form="contactForm" name="reason">
            <option value="purchase">Purchase</option>
            <option value="complaint">Complaint</option>
            <option value="business">Business</option>
            <option value="other">Other</option>
       </select>
       Comment:<br>
       <textarea rows="12" cols="70" name="comment" form="contactF$
       <input type="submit" value="Send">
    </fieldset>
</form>

PHP(它作为 HTML 文件末尾的 <?PHP ?>,我已经使用调试检查它是否运行):

 var_dump($_POST);
 var_dump($_REQUEST);

我的 /usr/share/doc/debian-reference-common/html/.htaccess 和 可以找到我的 /etc/php5/fpm/php.ini 个文件 here

您可能需要包含 <form action='page'></form> 才能使提交生效。除非您对输入值进行 AJAX 处理。

您可以尝试将 name 属性添加到您的提交按钮 HTML:

<input type="submit" name="submit" value="Send">

然后在 PHP:

中检查该值
if (isset($_POST['submit'])) {
    // do stuff here
    echo $_POST['firstname'] . "<br>";
    echo $_POST['lastname'] . "<br>";
    echo $_POST['mail'] . "<br>";
    echo $_POST['phone'] . "<br>";
    echo $_POST['reason'] . "<br>";
    echo $_POST['comment'];
}
?>

你还应该添加一个指向上面php所在页面的表单动作,在本例中,它是同一页面:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" id="contactForm">