-1

I am new to PHP and those complicated stuff. I can read it, just not write it that well.. But here the question: How do I sent the person who fills in the contact form a confirmation mail? I want the button 'submit' to also send a mail to them. But a different message.

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

That was my HTML, The PHP /

<?php

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



// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "lisa.hmforall@gmail.com";

$email_subject = "Reservering";





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";

Those were fetched from: http://www.freecontactform.com/email_form.php

Some snippets I found online:

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

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

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

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

--

$to      = '$email_from';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

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

And the reason for making it, for a school project I need to create a website for a fictive themeparc. But I want the people to be able to 'order' tickets as well. Just trough a simple "I want this arragement at this day". I can implement that my self. It is just for the confirming the user question why I post this. Thank you for thinking with me! :)

hmforall
  • 11
  • 1
  • You could use a library called [PHPMailer](https://github.com/PHPMailer/PHPMailer) . There is a folder with examples of how to use it – Bojan Radaković Mar 09 '17 at 09:06
  • If you're working with localhost so mail function won't work. You can use phpmailer – Saad Suri Mar 09 '17 at 09:13
  • The second one you found online is pretty much lifted from PHP's documentation http://php.net/manual/en/function.mail.php for yours you could just use the PHP built in `mail()` if it's on a server that can send mail from PHP with something like `if (mail( $email_to, $email_subject, $email_message, $email_from ) ) { *whatever you want to do if it's good* } else { *whatever you want to do if it's not sent* }`. Also the first example you found uses @mail you shouldn't use that as it just suppresses errors – PhilS Mar 09 '17 at 09:18
  • @SaadSuri I use `mail()` in some of my projects in localhost and its working fine – Masivuye Cokile Mar 09 '17 at 09:31

1 Answers1

0

first of all make tht $error_message and $value as an array so that in order to store all error msgs and form data via $_POST then you can display them on submit

 <?php
 function send_email($values)
{
 $to      = $_POST['name'];
 $subject = 'the subject';
 $message = $values;
 $headers = 'From:'.$_POST['email']."\r\n" .
 'Reply-To: webmaster@example.com' . "\r\n" .
 'X-Mailer: PHP/' . phpversion();

  mail($to, $subject, $message, $headers);
  }
   //now

  if(isset($submit))
  {
      if($error_message)
       {
         display_form($error);
        }
        if(!$error_message)
      {
       send_email();
       header("Location:index.php");
   }
  ?>
Mohit_
  • 49
  • 1
  • 7
  • For some reason I kept getting a message that it went wrong, even with the message u send. But it works now, thanks for your input! :) – hmforall Mar 09 '17 at 13:32
  • message was just an example for your clarification @hmforall – Mohit_ Mar 09 '17 at 15:53