尝试使用PHP从html表单发送电子邮件

时间:2014-08-08 18:56:18

标签: php html email

我正在尝试制作一个带有姓名,电子邮件和信息的表单并将其发送给我。

我有这样的表格:

<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); 

?>

我收到了一封电子邮件,但它没有主题或消息。它说邮件是空的。如果我用邮件功能中的文本替换变量,我会得到正确的文本,这必然意味着变量不能获得它们的值。

是这种情况,我该如何解决?如果没有,还有什么可能是错的?

1 个答案:

答案 0 :(得分:1)

问题是您已将enctype属性设置为&#34; text / plain&#34;,这意味着只有空格转换为+字符,并且不会编码特殊字符。这意味着当PHP收到提交的表单时,它不会将任何表单参数放在$ _POST自动全局数组中,因为它们是以意外格式接收的。要解决此问题,只需完全删除enctype属性,或将其替换为&#34; application / x-www-form-urlencoded&#34;。