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">
我 运行 和 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">