PHP POST和REQUEST是空的?

时间:2015-03-03 16:58:13

标签: php html nginx raspbian

我正在使用Raspbian运行Raspberry Pi(我认为Model B)。我跟着instructions安装了一个Web服务器(由于部件显得过时而进行了一些调整,我还安装了telnet以便从PHP发送电子邮件)。

我在网页上有一个表单,当我将其设置为使用GET方法var_dump($_GET)时,会按预期返回输入数组但是当我将其设置为使用POST方法时$_POST$_REQUEST为空(var_dump返回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 ?>,我检查它是否使用debug运行):

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

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

2 个答案:

答案 0 :(得分:3)

您可能需要包含<form action='page'></form>才能使提交正常进行。除非你是AJAXing输入值。

答案 1 :(得分:0)

您可以尝试在提交按钮HTML中添加name属性:

<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">