简体   繁体   English

发送电子邮件后的php联络表不会发送到邮箱

[英]php contact form after email sent not going to mailbox

here is my HTML code: 这是我的HTML代码:

    <form class="contact_form contact_form_h" id="form" method="POST" name="contactform" 
            action="contact-form-handler.php"  style="margin-bottom: 10px;">

                <div>
                    <div class="input_holder">
                        <input class="field-name" type="text" id="name" name="name" placeholder="Name (required)">
                    </div>
                    <div class="input_holder">
                        <input class="email_field" type="text" id="address" name="address" placeholder="Address">
                    </div>
                    <div class="input_holder">
                        <input class="subject_field" type="text" id="company" name="company" placeholder="Company">
                    </div>
                </div>
                <div class="clear"></div>
                <div>
                    <div class="input_holder">
                        <input class="field-name" type="text" id="phone" name="phone" placeholder="Mobile">
                    </div>
                    <div class="input_holder">
                        <input class="email_field" type="text" id="calltime" name="calltime" placeholder="convenient time for ask to call you">
                    </div>
                    <div class="input_holder">
                        <input class="subject_field" type="text" id="email" name="email" placeholder="Email">
                    </div>
                </div>

                <div class="textarea_holder">
                    <textarea class="comment_field" id="message"  name="message" placeholder="Your query"></textarea>
                </div>

                <input type='submit' name='submit' value="submit">

            </form>

I have further attached the PHP code: 我进一步附加了PHP代码:

   <?php

             /* send the submitted data */

    $name=$_REQUEST['name'];
    $address=$_REQUEST['address'];
    $company=$_REQUEST['company'];
    $phone=$_REQUEST['phone'];
    $calltime=$_REQUEST['calltime'];
    $email=$_REQUEST['email'];
    $message=$_REQUEST['message'];
   if (($name=="")||($email=="")||($message==""))
       {
        echo "All fields are required, please fill <a href=\"\">the form</a> again.";
        }
    else{       
        $from="From: $name<$email>\r\n $subject \n $name \n $address \n $company \n $phone \n $calltime \r\n Return-path: $email";
        $subject="Message sent using your contact form";
        mail("email@website.com", $message, $from);
        echo "Email sent!";
        }

?>

I tried many searches and testing, but this is the most perfect code i was able to sort out. 我尝试了许多搜索和测试,但这是我能够整理出的最完美的代码。 No idea why its not going to mail box, after submit button it still shows "Thank you" confirmation. 不知道为什么它不去邮箱,在提交按钮后它仍然显示“谢谢”确认。 Any resolution will be thankful. 任何决议将不胜感激。

in else part change $from as header 在其他部分更改$ from作为标题

$subject = "Your subject";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

 // More headers
 $headers .= 'From: <webmaster@example.com>' . "\r\n";

 $message="From: $name<$email>\r\n $subject \n $name \n $address \n $company \n $phone \n $calltime \r\n Return-path: $email";

  mail($to,$subject,$message,$headers);

I used this code: 我使用以下代码:

 <form name="contactform" method="post" action="send_form_email.php">

<table width="450px">

<tr>

 <td valign="top">

  <label for="first_name">First Name *</label>

 </td>

 <td valign="top">

  <input  type="text" name="first_name" maxlength="50" size="30">

 </td>

</tr>

<tr>

 <td valign="top"">

  <label for="last_name">Last Name *</label>

 </td>

 <td valign="top">

  <input  type="text" name="last_name" maxlength="50" size="30">

 </td>

</tr>

<tr>

 <td valign="top">

  <label for="email">Email Address *</label>

 </td>

 <td valign="top">

  <input  type="text" name="email" maxlength="80" size="30">

 </td>

</tr>

<tr>

 <td valign="top">

  <label for="telephone">Telephone Number</label>

 </td>

 <td valign="top">

  <input  type="text" name="telephone" maxlength="30" size="30">

 </td>

</tr>

<tr>

 <td valign="top">

  <label for="comments">Comments *</label>

 </td>

 <td valign="top">

  <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>

 </td>

</tr>

<tr>

 <td colspan="2" style="text-align:center">

  <input type="submit" value="Submit">   <a href="http://www.freecontactform.com/email_form.php">Email Form</a>

 </td>

</tr>

</table>

</form>

And PHP form as: 和PHP的形式为:

 <?php

if(isset($_POST['email'])) {


       $email_to = "you@yourdomain.com";

    $email_subject = "Your email subject line";





    function died($error) {

        // your error code can go here

        echo "We are very sorry, but there were error(s) found with the form you submitted. ";

        echo "These errors appear below.<br /><br />";

        echo $error."<br /><br />";

        echo "Please go back and fix these errors.<br /><br />";

        die();

    }



    // validation expected data exists

    if(!isset($_POST['first_name']) ||

        !isset($_POST['last_name']) ||

        !isset($_POST['email']) ||

        !isset($_POST['telephone']) ||

        !isset($_POST['comments'])) {

        died('We are sorry, but there appears to be a problem with the form you submitted.');       

    }



    $first_name = $_POST['first_name']; // required

    $last_name = $_POST['last_name']; // required

    $email_from = $_POST['email']; // required

    $telephone = $_POST['telephone']; // not required

    $comments = $_POST['comments']; // required



    $error_message = "";

    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

  if(!preg_match($email_exp,$email_from)) {

    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';

  }

    $string_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($string_exp,$first_name)) {

    $error_message .= 'The First Name you entered does not appear to be valid.<br />';

  }

  if(!preg_match($string_exp,$last_name)) {

    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';

  }

  if(strlen($comments) < 2) {

    $error_message .= 'The Comments you entered do not appear to be valid.<br />';

  }

  if(strlen($error_message) > 0) {

    died($error_message);

  }

    $email_message = "Form details below.\n\n";



    function clean_string($string) {

      $bad = array("content-type","bcc:","to:","cc:","href");

      return str_replace($bad,"",$string);

    }



    $email_message .= "First Name: ".clean_string($first_name)."\n";

    $email_message .= "Last Name: ".clean_string($last_name)."\n";

    $email_message .= "Email: ".clean_string($email_from)."\n";

    $email_message .= "Telephone: ".clean_string($telephone)."\n";

    $email_message .= "Comments: ".clean_string($comments)."\n";





// create email headers

$headers = 'From: '.$email_from."\r\n".

'Reply-To: '.$email_from."\r\n" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);  

?>


Thank you for contacting us. We will be in touch with you very soon.



<?php

}

?>

Now i need to just know how to redirect one to a definite page on successful submission. 现在,我只需要知道如何在成功提交后将其重定向到确定的页面即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM