title: How to format output from php form to html email
body: <p>Firstly I am not a programmer - so I am trying to adapt things to what I need. I have been working for some weeks on a html form that produces a unique code and emails the data to me and the form owner.  </p>
  
  <p>I have managed to get all this to work and build it into my website.  </p>
  
  <p>However the last vestige is that I want to format the email into html and I have searched and read and tried many different pieces of code for this - some even from here with no success. I ether get code, nothing or all the info in one uninterrupted sentence.  </p>
  
  <p>Here is my php. Near the bottom is the info I need in the mail at <code>$email_message</code></p>
  
  <p>Form code:</p>
  
  <pre><code>&lt;div style="position:absolute;left:0px;top:546px;width:350px;height:84px;"&gt;
  &lt;style type="text/css"&gt;
  .formtxt{color:white;}
  &lt;/style&gt;
  &lt;?php
  $tokens = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  
  $serial = '';
  
  for ($i = 0; $i &lt; 3; $i++) {
  for ($j = 0; $j &lt; 4; $j++) {
      $serial .= $tokens[rand(0, 35)];
  }
  
  if ($i &lt; 2) {
      $serial .= '-';
  }
  }
  ?&gt;
  &lt;form name="contactform" method="post" action="bridalcontact.php"&gt;
  &lt;table width="350px" align="center"&gt;
  &lt;tr&gt;
  &lt;td valign="top"&gt;
  &lt;label for="first_name"&gt; &lt;span class="formtxt"&gt;First Name*&lt;/span&gt;&lt;/label&gt;
  &lt;/td&gt;
  &lt;td valign="top"&gt;
  &lt;input type="text" name="first_name" maxlength="50" size="20"&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td valign="top""&gt;
  &lt;label for="last_name"&gt; &lt;span class="formtxt"&gt;Last Name*&lt;/span&gt;&lt;/label&gt;
  &lt;/td&gt;
  &lt;td valign="top"&gt;
  &lt;input type="text" name="last_name" maxlength="50" size="20"&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td valign="top"&gt;
  &lt;label for="email"&gt; &lt;span class="formtxt"&gt;Email*&lt;/span&gt;&lt;/label&gt;
  &lt;/td&gt;
  &lt;td valign="top"&gt;
  &lt;input type="text" name="email" maxlength="80" size="20"&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td valign="top"&gt;
  &lt;label for="security"&gt; &lt;span class="formtxt"&gt;What colour is the sky *&lt;/span&gt;&lt;/label&gt;
  &lt;/td&gt;
  &lt;td valign="middle"&gt;
  &lt;input type="text" name="security" maxlength="80" size="20"&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td valign="top"&gt;
  &lt;label for="telephone"&gt;Code&lt;/label&gt;
  &lt;/td&gt;
  &lt;td valign="top"&gt;
  &lt;input type="disabled" name="code" size="20" value='&lt;?php echo "$serial"?&gt;'readonly&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td colspan="2" style="text-align:center"&gt;
  &lt;input type="submit" value="Submit"&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/form&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>Php code:</p>
  
  <pre><code>&lt;?php
  
  if(isset($_POST['email'])) {
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "my email address here";
    $email_subject = "Your AODJ voucher";
    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.&lt;br /&gt;&lt;br /&gt;";
      echo $error."&lt;br /&gt;&lt;br /&gt;";
      echo "Please go back and fix these errors.&lt;br /&gt;&lt;br /&gt;";
      die();
    }
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
      !isset($_POST['last_name']) ||
      !isset($_POST['email']) ||
      !isset($_POST['security'])) {
        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
    $security = $_POST['security']; // required
    $code = $_POST['code']; // not 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.&lt;br /&gt;';
    }
    $security_exp = "/blue/";
    if(!preg_match($security_exp,$security)) {
      $error_message .= 'Wrong solar system - sorry.&lt;br /&gt;';
    }
    //$string_exp = "/^[A-Za-z .'-]+$/";
    //if(!preg_match($security_exp,$security)) {
    //$error_message .= 'Wrong solar system - sorry.&lt;br /&gt;';
    //}
    $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.&lt;br /&gt;';
    }
    if(!preg_match($string_exp,$last_name)) {
      $error_message .= 'The Last Name you entered does not appear to be valid.&lt;br /&gt;';
    }
    if(strlen($error_message) &gt; 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 .= "code: ".clean_string($code)."\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);
    @mail($email_from, $email_subject, $email_message, $headers);
  ?&gt;
  &lt;?php
    if( !empty( $_POST ) ) {
      header( "Location: bridaloptionsthanks.html" ) ; exit ;
    }
  }
  ?&gt;
  </code></pre>