【问题标题】:Message not sending in contact form消息未以联系方式发送
【发布时间】:2017-05-05 11:30:45
【问题描述】:

我正在尝试创建一个联系表单,用户将在其中填写他们的姓名、电子邮件、主题和消息,以便与我联系。假设向我的电子邮件帐户发送电子邮件,但每次我测试它时,它都不起作用。我很肯定这是正确的,但我想它不是。请问有什么帮助吗?

<?php

//Get user input
$name = $_POST["name"];
$email = $_POST["email"];
$subject = $_POST["subject"]
$message = $_POST["message"];

//error messages
$missingName = '<p><strong>Please enter your name!</strong></p>'; 
$missingEmail = '<p><strong>Please enter your email address!</strong></p>'; 
$invalidEmail = '<p><strong>Please enter a valid email address!</strong></p>';
$missingSubject = '<p><strong>Please enter a Subject!</strong></p>';
$missingMessage = '<p><strong>Please enter a message!</strong></p>'; 

//if the user has submitted the form
if($_POST["submit"]){
   //check for errors
     if(!$name){
       $errors .= $missingName;  
    }else{
       $name = filter_var($name,FILTER_SANITIZE_STRING);   
    }
     if(!$email){
       $errors .= $missingEmail;   
    }else{
      $email = filter_var($email, FILTER_SANITIZE_EMAIL);
      if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
          $errors .=$invalidEmail;   
      }
  }

    if(!$subject){
       $errors .= $missingSubject;
   }else{
       $message = filter_var($subject, FILTER_SANITIZE_STRING);   
   }

   if(!$message){
      $errors .= $missingMessage;
   }else{
       $message = filter_var($message, FILTER_SANITIZE_STRING);   
   }

    //if there are any errors
    if($errors){
       //print error message
       $resultMessage = '<div class="alert alert-danger">' . $errors .'</div>';   
   }else{
     $to = "fanonxr@gmail.com";
     $subject = "Contact";
     $message = "
     <p>Name: $name.</p>
     <p>Email: $email.</p>
     <p>Subject: $subject.</p>
     <p>Message:</p>
     <p><strong>$message</strong></p>"; 
     $headers = "Content-type: text/html";
     if(mail($to, $subject, $message, $headers)){
        $resultMessage = '<div class="alert alert-success">Thanks for your message. We will get back to you as soon as possible!</div>';  
        header("Location: index.php");
      }else{
          $resultMessage = '<div class="alert alert-warning">Unable to send Email. Please try again later!</div>';  
     }
 }
 echo $resultMessage;

} ?>

【问题讨论】:

  • 您缺少一些标题部分,就像您没有提到 来自标题中的电子邮件 ID 请参阅此 (w3schools.com/php/func_mail_mail.asp)
  • 可能是你的服务器设置。也请检查一下。

标签: php html


【解决方案1】:

您似乎缺少form action 和mailto,因为它的Html 我认为应该包括这些。

【讨论】:

    【解决方案2】:

    您的验证对我来说看起来不错。 在发送电子邮件方面,请尝试在此处找到一些答案:

    PHP mail form doesn't complete sending e-mail

    如果这不能解决您的问题,请提供更多信息,例如您使用的邮件程序。希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多