How to validate email address
Hi,
I wanted to know how I can get the email to validate My code is if ($_POST) { $expected = array('name', 'email', 'emailmessage'); $validation = array( 'name' => 'Please provide your full name', 'email' => 'Please provide your valid email address', 'emailmessage' => 'Please provide message' ); $errors = array(); $output = array(); foreach($expected as $key) { $input = htmlspecialchars($_POST[$key]); if (array_key_exists($key, $_POST)) { if (empty($_POST[$key])) { $errors[$key] = $validation[$key]; } else { $output[$key] = $_POST[$key]; } } else { $errors[$key] = $validation[$key]; } } if (!empty($errors)) { $array = array('error' => true, 'fields' => $errors); } else { // PROCESS FORM // --------------------------------------------------------- // BEGIN EDITING // --------------------------------------------------------- $to = "[email protected]"; //This is the email address messages will be sent to $web_name = "My Test Web Form"; //This is the name of your website that will show in your email inbox //get IP address $ip = $_SERVER['REMOTE_ADDR']; //make time $time = time(); $date = date("r", $time); // --------------------------------------------------------- // END EDITING // --------------------------------------------------------- $emailmessage = trim($emailmessage); $emailmessage = nl2br($emailmessage); $emailmessage = htmlspecialchars($emailmessage); $emailmessage = wordwrap($emailmessage, 70); //Visible form elements $name = $_POST['name']; //Sender's name $email = $_POST['email']; //Sender's email $emailmessage = htmlspecialchars($_POST['emailmessage']); //Sender's message //Setting up email $subject = "New Message from $web_name"; $message = " New message from $name <br/><br/> Message:<br /> $emailmessage <br/> <br/> Email: $email<br /> IP:</strong> <span style=\"color:#990000;\">$ip</span><br /> Date:</strong> $date "; $header = 'MIME-Version: 1.0' . "\r\n"; $header .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $header .= 'From:'. $email . " \r\n"; $sent = mail($to, $subject, $message, $header); //$message = '<div id=message>You have successfully subscribed to our newsletter</div>'; $array = array('error' => false, 'message' => $message); } echo json_encode($array); }I want the errors passed through the array but I have the below code and I do not know how to call it to validate the email and pass the error in the $validation array if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // email is valid } else { // email is invalid } All help is much apprecaited. Thanks Kind Regards
3 Answers
read and try to understand this code
$field_rules = array( 'name' => 'required', 'email' => 'required|valid_email', 'phone' => '', 'contact_reason' => 'required', 'message' => 'required' ); $error_messages = array( 'required' => 'This field is required', 'valid_email' => 'Please enter a valid email address' ); $error_list = ''; $fields = $_POST; if (!empty($fields)) { //Validate each of the fields foreach ($field_rules as $field => $rules) { $rules = explode('|', $rules); foreach ($rules as $rule) { $result = null; if (isset($fields[$field])) { if (!empty($rule)) $result = $rule($fields[$field]); if ($result === false) { $field_name = ucwords(implode(' ', explode('_', $field))); $error_list .= "<div class='error'>$field_name: " . $error_messages[$rule] . "</div>"; } } } } if (empty($error_list)) { $subject = '[Contact Form] New message from ' . $fields['name'] . '.'; $content = $fields['name'] . " sent you a message from your contact form:rnn"; $content .= "-------n" . $fields['message'] . "rnn"; $content .= "Contact Reason: " . $fields['contact_reason'] . " nnEmail: " . $fields['email'] . " nnPhone: " . $fields['phone'] . " nn"; if (mail($email_address, $subject, $content, "From: " . $fields['email'] . "rnReply-To: " . $fields['email'] . "rnReturn-Path: " . $fields['email'] . "rn")) { echo "<h2 class='success'>Message Sent</h2>"; echo "<br/><p class='success'>Thank you <strong>" . $fields['name'] . "</strong>, your message has been submitted and someone will contact you shortly.</p>"; } else { echo 'ERROR!'; } } } function valid_email($str) { return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $str) ? false : true; } Posted: MacOS Edited: MacOS 1 of 1 people found this answer helpful. Did you? Yes No <?php # Validation Class # www.C0derz.com # GPL License class Validation { public static function Is_alpha($string,$min,$max) { if(!Validation::Length($string,$min,$max)){return false;} else return (bool) eregi("^[a-zA-Z]+$",$string); } public static function Length($string,$min,$max) { if(empty($min) && empty($max)) {return true;} if(empty($min) && !empty($max)){if(strlen($string) < $max){return true;}} else if(!empty($min) && empty($max)){if(strlen($string) > $min){return true;}} else if(strlen($string) > $min && strlen($string) < $max){return true;}else{return false;} } public static function Is_Email($string,$min,$max) { if(!Validation::Length($string,$min,$max)){return false;} else return (bool) filter_var($string, FILTER_VALIDATE_EMAIL); } public static function Is_Mobile($string,$min,$max) { if(!Validation::Length($string,$min,$max)){return false;} else return (bool) eregi("^[0-9]{8,20}$",$string); } public static function Is_Phone($string,$min,$max) { if(!Validation::Length($string,$min,$max)){return false;} else return (bool) eregi("^[0-9 ]{7,13}$",$string); } public static function Is_Url($string,$min,$max) { if(!Validation::Length($string,$min,$max)){return false;} else return (bool) eregi("^(https?|ftp)\\:\\/\\/([a-z0-9+!*(),;?&=\$_.-]+(\\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?[a-z0-9+\$_-]+(\\.[a-z0-9+\$_-]+)*(\\:[0-9]{2,5})?(\\/([a-z0-9+\$_-]\\.?)+)*\\/?(\\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?\$", $string); } public static function Is_Ip4($string) { return (bool) preg_match("/^((\d{1,2}|[01]\d{2}|2([0-4]\d|5[0-5]))\.){3}(\d{1,2}|[01]\d{2}|2([0-4]\d|5[0-5]))$/",$string); } public static function Is_Ip6($string) { if(empty($string)){return false;} // fast exit for localhost if (strlen($string) < 3) return $string == '::'; // Check if part is in IPv4 format if (strpos($string, '.')) { $lastcolon = strrpos($string, ':'); if (!($lastcolon && Validation::Is_Ip4(substr($string, $lastcolon + 1)))) return false; // replace IPv4 part with dummy $string = substr($string, 0, $lastcolon) . ':0:0'; } // check uncompressed if (strpos($string, '::') === false) { return preg_match('/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i', $string); } // check colon-count for compressed format if (substr_count($string, ':') < 8) { return preg_match('/^(?::|(?:[a-f0-9]{1,4}:)+):(?:(?:[a-f0-9]{1,4}:)*[a-f0-9]{1,4})?$/i', $string); } return false; } } ?> Posted: Nasser 1 of 2 people found this answer helpful. Did you? Yes No @ NasserThank you for your reply but I am still none the wiser.I do not know how to call the funxtion inside my code to validate the email address.If you give me your email address I could email you the full files for you to have a look at please.Kind Regards this is a class for "Validation" it's totally easy ..
use as the following
<?php
include("Validation.php");
$email = "[email protected]";
if(Validation::Is_Email($email)) {
echo "true Email";
} else {echo "False !";}
?> you can also determine the length of the email using the following
Validation::Is_Email($email,5,20);
the email between 5 and 20 chars @Nasser, this is very good class, but @qakbar5 problem is how to add any "Validation" on the code include("Validation.php");
$email = $_POST['email']; //Sender's email
if(Validation::Is_Email($email)) { echo "true Email"; } else {echo "False !";} on his code :) ( in the first post ) heheheh ,, let him try and learn :P hhhhhhhhh, ok but it think the 2nd code will do what he want
Try to replace the "foreach" to
foreach($expected as $key) { $input = htmlspecialchars($_POST[$key]); if (array_key_exists($key, $_POST)) { if (empty($_POST[$key])) { $errors[$key] = $validation[$key]; } else { if($key == 'email'){ if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $output[$key] = $_POST[$key]; }else{ $errors[$key] = 'NON VALIDATE_EMAIL' } }else{ $output[$key] = $_POST[$key]; } } } else { $errors[$key] = $validation[$key]; } } Posted: Dina 0 of 2 people found this answer helpful. Did you? Yes No Hi Dina,Sorry but this did not work.My form uses Ajax and PHP.Would it help if I can email you the full files and you could have a look for me please.Regards |
© Advanced Web Core. All rights reserved