简体   繁体   中英

php contact form after email sent not going to mailbox

here is my HTML code:

    <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

             /* 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

$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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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