我正在尝试制作一个带有姓名,电子邮件和信息的表单并将其发送给我。
我有这样的表格:
<form id="form" action="form.php" method="post" enctype="text/plain">
Namn:<br>
<input id="box1" type="text" name="name"><br>
E-post:<br>
<input id="box2" type="text" name="mail"><br>
Meddelande:<br>
<textarea id="messagebox" type="text" name="message"></textarea><br><br>
<input id="submit" type="submit" value="Send">
</form>
这是我的form.php:
<?PHP
$name = $_POST["name"];
$mail = $_POST["mail"];
$message = $_POST["message"];
mail("name@example.com", "Message from $name", $message);
?>
我收到了一封电子邮件,但它没有主题或消息。它说邮件是空的。如果我用邮件功能中的文本替换变量,我会得到正确的文本,这必然意味着变量不能获得它们的值。
是这种情况,我该如何解决?如果没有,还有什么可能是错的?
答案 0 :(得分:1)
问题是您已将enctype属性设置为&#34; text / plain&#34;,这意味着只有空格转换为+字符,并且不会编码特殊字符。这意味着当PHP收到提交的表单时,它不会将任何表单参数放在$ _POST自动全局数组中,因为它们是以意外格式接收的。要解决此问题,只需完全删除enctype属性,或将其替换为&#34; application / x-www-form-urlencoded&#34;。