Contact Form Help.

Associate
Joined
22 Aug 2011
Posts
240
So I'm making a personal website for myself and I had a form that was working last night, but I changed it up to add more advanced contact form using html5 validation methods and so on.

To cut a long story short, even after modifying my php code, the form does not work anymore, it wont send and doesn't give me any error feedback, even with error checking incorporated.

here's my form code:

<form class="contact_form" action="mail.php" method="post" name="contact_form">
<ul>
<li>
<h2><a id="contact">Contact Us</a></h2>
<span class="required_notification">* Denotes Required Field</span>
</li>
<li>
<label for="first_name">Name:</label>
<input type="text" placeholder="John Doe" required />
</li>
<li>
<label for="email">Email:</label>
<input type="text" name="email" placeholder="[email protected]" required />
<span class="form_hint">Proper format "[email protected]"</span>
</li>
<li>
<label for="website">Website:</label>
<input type="url" name="website" placeholder="http://johndoe.com" /> <!-- pattern requirement <required pattern="(http|https)://.+"/ -->
<span class="form_hint">Proper format "http://someaddress.com"</span>
</li>
<li>
<label for="comements">Message:</label>
<textarea name="message" cols="40" rows="6" placeholder="leave me a message..." required ></textarea>
</li>
<li>
<button class="submit" type="submit">Submit Form</button>
</li>
</ul>
</form>

and here is the php code to correspond with the form.

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

// email address of yourself and the email subject you wish to receive the emails at:

$email_to = "#email-goes-here";
$email_subject = "email-subject-goes-here";

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);
?>

<!-- successful contact form submission content goes here -->

Thank you for contacting us. We will be in touch with you very soon.

<?php
}
?>

Any help would be greatly appreciated.
 
Associate
OP
Joined
22 Aug 2011
Posts
240
fixed

Yeah I realised that some of my form names were actually missing/not named correctly and not been indexed properly on the php side of things, thanks for the heads up anyway.
 
Back
Top Bottom