Validator for form, Validation |
Validator for form, Validation |
lamboman |
Apr 28 2017, 01:51 PM
Post
#1
|
Group: Members Posts: 2 Joined: 28-April 17 Member No.: 26,390 |
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 --> Thanks for subscribing to our news letter. <body onLoad="timer=setTimeout(function(){ window.location='http://whatever.com';}, 5000)"> <p>You will be redirected in 5 seconds</p> </body> <?php } ?> |
Christian J |
Apr 28 2017, 03:52 PM
Post
#2
|
. Group: WDG Moderators Posts: 9,630 Joined: 10-August 06 Member No.: 7 |
Try adding this:
CODE $comment = $_POST['comment']; $comment = strip_tags($comment); $email_message .= clean_string($comment)."\n"; after this line: CODE $email_message .= "Email: ".clean_string($email_from)."\n"; Note that this will only perform basic sanitation by removing HTML tags, it doesn't limit the min- or maxlength of the message. BTW, why do you use so much whitespace in your code example? I'm curious because I've seen it in other forum posts too --is it some text editor that causes it? |
lamboman |
Apr 30 2017, 10:40 AM
Post
#3
|
Group: Members Posts: 2 Joined: 28-April 17 Member No.: 26,390 |
Try adding this: CODE $comment = $_POST['comment']; $comment = strip_tags($comment); $email_message .= clean_string($comment)."\n"; after this line: CODE $email_message .= "Email: ".clean_string($email_from)."\n"; Note that this will only perform basic sanitation by removing HTML tags, it doesn't limit the min- or maxlength of the message. BTW, why do you use so much whitespace in your code example? I'm curious because I've seen it in other forum posts too --is it some text editor that causes it? Cant thank you enough. Works just as I hoped. Not sure about the white spaces. I believe I copied this script from somewhere so i am guessing it was like that originally. Thanks again. |
Lo-Fi Version | Time is now: 29th March 2024 - 10:58 AM |