Simple reply form breaks webpage after exit

I have a contact form at http://www.reincarnations.com/contact.php. When the form is passed correctly to contactform.php, it exits the script without allowing the browser to display the rest of the page, basically truncating the html code upon exit.

contactform.php uses a simple require statement to call ‘contactreply.php’ full code for the php file below:

[php]
<?php
if(isset($_POST[‘email’])) {

// CHANGE THE TWO LINES BELOW
$email_to = "[email protected]";
 
$email_subject = "website form submissions";
 
 
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.
’;
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= ‘The Last Name you entered does not appear to be valid.
’;
}
if(strlen($comments) < 2) {
$error_message .= ‘The Comments you entered do not appear to be valid.
’;
}
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 } die(); ?>

[/php]

Nothing displays after the required script (contactreply.php) dies. (i.e. the rest of the webpage - footer, etc.), although it does execute the proper error or completion message.

Can anyone help me with this?

Why do you call the die() function at the end of the script?

Nice design for your site. I may suggest making it more mobile friendly, but it looks like a nice niche site.

I’m just starting out. It’s a free script, modified to fit my site. I thought it might have been the problem too, but cutting it out completely gave me a php error. Perhaps by simply cutting out the die function, I was cutting off the closing tag of the script? Forgive me, I’m an artist struggling to learn some programming.

Comment out the die() and leave the bracket.

You have several security issues with your site. You are also vulnerable to click jacking. (See attached image)


The comment trick seemed to do the trick. Appreciate the help! As far as security issues go, I’ll address them as quickly as I can. I will get around to re-coding my form as I continue to learn. I"m sure I’d be more on top of things if programming was the only hat I wear, but I’ve never been allowed the luxury. I’m sure I’ll be able to close many of those issues as I continue to learn.

Sponsor our Newsletter | Privacy Policy | Terms of Service