2017-05-05 92 views
0

我想创建一个联系表单,用户将填写他们的姓名,电子邮件,主题和消息以便与我联系。这是假设发送电子邮件到我的电子邮件帐户,但每次我测试它,它不起作用。我确信这是正确的,但我想不是。请帮忙吗?消息没有发送联系表

<?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 = "[email protected]"; 
    $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; 

} ?>

+0

你缺少一些像你一样的标题部分**从标题中的电子邮件ID ** 请参阅此(https://www.w3schools.com/php/func_mail_mail.asp) –

+0

它可能是您的服务器设置。请检查一下。 – MACMAN

回答

0

看来你是缺少form action和邮寄地址,因为它的HTML我认为这些应包括在内。

0

您的验证看起来不错。 在发送电子邮件,试图在这一领域找到了一些答案方面:

PHP mail form doesn't complete sending e-mail

如果不解决您的问题,请提供一些更多的信息,像什么梅勒你使用。希望这可以帮助:)