Jump to content

form validation


lamboman

Recommended Posts

Forms are not my strong point.Below I have the form and it works fine. I also have a validator script below that works as it is but I want to add the comment part to it and whatever I do it seems to not work.

<form action="send_form_email.php" method="post">
<div class="one_third first">
<label for="first_name">Name <span>*</span></label>
<input type="text" name="first_name" id="first_name" value="" size="22" required>
</div>
<div class="one_third">
<label for="email">Mail <span>*</span></label>
<input type="email" name="email" id="email" value="" size="22" required>
</div>
<div class="block clear">
<label for="comment">Your Comment</label>
<textarea name="comment" id="comment" cols="25" rows="10"></textarea>
</div>
<div>
<input type="submit" name="submit" value="Submit Form">
 
<input type="reset" name="reset" value="Reset Form">
</div>
</form>





<?php

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



// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "My email";

$email_subject = "Inquiry from site";




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'])) {

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





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







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



We will be getting back to you as soon as possble.

<body onLoad="timer=setTimeout(function(){ window.location='http://whatever.com';}, 5000)">
<p>You will be redirected in 5 seconds</p>
</body>

<?php

}

?>

Link to comment
Share on other sites

i haven't added it in there yet, thats what im asking. I added it in in as:

$email_from = $_POST['comment']; // required

I just kept getting errors. I am assuming I have to add in this line but again no mater what I added I got an error

 

if(!isset($_POST['first_name']) ||

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

died('We are sorry, but there appears to be a problem with the form you submitted.'); 

}

 

But to be honest i dont really care about a validator on the comments. i dont really care if it gets filled, just need it to pass threw to e-mail.

 

I also tried the following just to pass to e-mail without validation but it did not work. I may have added in the wrong place.

 

$email_from = $_POST['comment'];

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.