无法将表单信息发送到电子邮件(PHP)

时间:2019-08-06 02:55:41

标签: php html forms email

我正在制作一个网页,该网页的形式应该是填写后将所有信息发送到电子邮件中。但是,我似乎无法使其正常运行,这使我发疯。我是一个初学者,所以我想知道是否有人可以帮助我?

PHP和我不是最好的朋友...尽管如此,我没有放弃。看来我已经设法将index.php与contact-form-php连接起来,但是,无论何时尝试,它都无法捕获键入到表单中的信息,而是向我发送“ else” 操作,这只是一条消息,指出存在错误。我真的不知道该怎么解决。

HTML

<form class="form-align mx-5 ml-md-0" action="contact-form.php" method="post">
     <input class="form-control my-3 inputname" type="text" 
     placeholder="Name" id="dname">
     <input class="form-control my-3 inputemail" type="email" 
     placeholder="Email" id="demail">
     <textarea class="form-control my-3 inputtext" type="text" 
     placeholder="We're all ears..." rows="5" id="dtext"></textarea>
     <a href="https://vivasox.com/"><button type="submit" 
     class="btnsend">SEND</button></a>
</form>

PHP

<?php
   /* Capturing variables */
   $demail=   ( empty($_POST["demail"])   )  ?  NULL : $_POST["demail"];
   $dname=    ( empty($_POST["dname"])    )  ?  NULL : $_POST["dname"];
   $dtext= ( empty($_POST["dtext"]) )  ?  NULL : $_POST["dtext"];

   /* Verifying POST */
   if ($demail && $dname && $dtext){
       $for = 'myemail@hotmail.com';
       $mailheader = "From: ".$demail."\r\n";
       $mailheader .= "Content-type: text/html; charset=utf-8\r\n";

       $MESSAGE_BODY = "Nombre: ".$dname."\n";
       $MESSAGE_BODY .= "\n<br>Email: ".$demail."\n";
       $MESSAGE_BODY .= "\n<br>Mensaje: ".nl2br($dtext)."\n";

       mail($for, $MESSAGE_BODY, $mailheader) or die("Sorry. There seems to be a problem. Please try sending your message again!");
       header("Location: https://socklesslooksolution.com/");

   }else{
        /* Error message */
        echo "Error: Please fill the form!";
  }
?>

我希望它发送电子邮件,然后返回站点的主页,但它们都不做。

非常感谢您的光临!

1 个答案:

答案 0 :(得分:2)

您的输入内容和文本区域缺少name属性,您需要使用该属性在提交表单时发送值:

<form class="form-align mx-5 ml-md-0" action="contact-form.php" method="post">
     <input class="form-control my-3 inputname" type="text" name="dname" placeholder="Name" id="dname">
     <input class="form-control my-3 inputemail" type="email" name="demail" placeholder="Email" id="demail">
     <textarea class="form-control my-3 inputtext" type="text" name="dtext" placeholder="We're all ears..." rows="5" id="dtext"></textarea>
     <a href="https://vivasox.com/"><button type="submit" class="btnsend">SEND</button></a>
</form>