0

I have been trying all night to get this code to work on my server. The website is lonestarironworks.net and any help would be amazing. This is bootstrap and php.

when the form is filled out and you hit the submit button it goes to a blank white screen and no email arrives.

<?php

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



// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "email@example.com";

$email_subject = "bacon";





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['email']) ||


    !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


$email_from = $_POST['email']; // 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(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 .= "Email: ".clean_string($email_from)."\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);  

?>



<!-- include your own success html here -->


<p>thank you</p>



<?php

 }

 ?>

and the html

<form role="form" action="send_form_email.php" name="contactform" method="post" enctype="text/plain" >
<div class="col-lg-6">
  <br>
  <div>
    <p>Please feel free to call the shop during business hours. All emails will be replied as soon as possible.</p>
  </div>
  <br>
  <div class="form-group">
    <label for="first_name">Your Name</label>
    <div class="input-group">
      <input type="text" class="form-control" name="first_name" id="first_name" placeholder="Enter Name" required>
      <span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span></div>
  </div>
  <div class="form-group">
    <label for="email">Your Email</label>
    <div class="input-group">
      <input type="email" class="form-control" id="email" name="email" placeholder="Enter Email" required  >
      <span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span></div>
  </div>
  <div class="form-group">
    <label for="comments">Message</label>
    <div class="input-group"
>
      <textarea name="comments" id="comments" class="form-control" rows="5" required></textarea>
      <span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span></div>
  </div>
  <input type="submit" name="submit" id="submit" value="Submit" class="btn btn-info pull-right">
</div>
</form>
Funk Forty Niner
  • 73,764
  • 15
  • 63
  • 131
  • 2
    *a blank white screen* means something is broken. Add these lines `error_reporting(E_ALL); ini_set('display_errors', 1);` at the top of your PHP scripts and see if it yields any error or not. – Rajdeep Paul Jun 10 '16 at 01:38

1 Answers1

1

You need to remove enctype="text/plain" from your form.

It isn't a valid enctype to process POST arrays.

Funk Forty Niner
  • 73,764
  • 15
  • 63
  • 131
  • Thank you that worked, I don't know why they marked it as a duplicate as this problem was not solved by the other question. again thank you – Robert Widener Jun 10 '16 at 18:36
  • @RobertWidener You're welcome. Consider accepting the answer. Here's how http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work then return here and do the same with the tick/checkmark till it turns green. This informs the community, that a solution was found. *Cheers* – Funk Forty Niner Jun 10 '16 at 18:45