JonShent Posted March 7, 2011 Share Posted March 7, 2011 Ok well i've been trying to figure this out for a while now and really havent been able to find out how to implement this, I currently have it so that my email form requires you enter your name and email but you don't have to enter your phone number, I need to change it soo that it requires you enter a valid phone number aswell. Heres my code below, my boss is really getting on my case over this and I'm not a .php developered so any help would be really appretiated. The codes below I also attached it in a file for those who want it. <?php $my_email = "email@emailhere.co.uk"; $continue = "/"; $errors = array(); if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}} function recursive_array_check_header($element_value) { global $set; if(!is_array($element_value)){if(preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i",$element_value)){$set = 1;}} else { foreach($element_value as $value){if($set){break;} recursive_array_check_header($value);} } } recursive_array_check_header($_REQUEST); if($set){$errors[] = "You cannot send an email header";} unset($set); if(isset($_REQUEST['email']) && !empty($_REQUEST['email'])) { if(preg_match("/(%0A|%0D|\n+|\r+|:)/i",$_REQUEST['email'])){$errors[] = "Email address may not contain a new line or a colon";} $_REQUEST['email'] = trim($_REQUEST['email']); if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Email address is invalid";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Email address is invalid";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Email address is invalid";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Email address is invalid";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Email address is invalid"; break;}}}}}} } if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";} function recursive_array_check_blank($element_value) { global $set; if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}} else { foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);} } } recursive_array_check_blank($_REQUEST); if(!$set){$errors[] = "You cannot send a blank form";} unset($set); if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;} if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");} function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");} $message = build_message($_REQUEST); $message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL.""; $message = stripslashes($message); $subject = "Website Query"; $headers = "From: " . $_REQUEST['email']; mail($my_email,$subject,$message,$headers); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Tracey Bell - Contact Form</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#ffffff" text="#000000"> <div> <center> <b>Thank you <?php print stripslashes($_REQUEST['name']); ?></b> <br>Your message has been sent <p><a href="<?php print $continue; ?>">Click here to continue</a></p> </center> </div> </body> </html> [attachment deleted by admin] Quote Link to comment https://forums.phpfreaks.com/topic/229872-required-field-for-formtoemailphp/ Share on other sites More sharing options...
HuggieBear Posted March 7, 2011 Share Posted March 7, 2011 It doesn't look as though even the name is compulsory. If you're just wanting to make sure it's not blank then you can use empty() and isset() If you want to actually verify that the phone number is in a valid format then refer to preg_match() Quote Link to comment https://forums.phpfreaks.com/topic/229872-required-field-for-formtoemailphp/#findComment-1184089 Share on other sites More sharing options...
Maq Posted March 7, 2011 Share Posted March 7, 2011 In the future, please use tags when posting code. Quote Link to comment https://forums.phpfreaks.com/topic/229872-required-field-for-formtoemailphp/#findComment-1184091 Share on other sites More sharing options...
JonShent Posted March 8, 2011 Author Share Posted March 8, 2011 I'm sorry but I'm a complete .php novice would it be terrible of me if I asked if someone could post the corrected code for me? I'm basically web admin/graphic design and have inherrited this code from whoever built the site. Quote Link to comment https://forums.phpfreaks.com/topic/229872-required-field-for-formtoemailphp/#findComment-1184385 Share on other sites More sharing options...
HuggieBear Posted March 8, 2011 Share Posted March 8, 2011 if(!isset($_REQUEST['phone']) || empty($_REQUEST['phone'])){ exit('You must provide a phone number'); } This will make sure that something has been entered, it won't check to see if it's in the correct format, in fact it won't even ensure it's a number. If you want that then try googling 'Validate Phone Number PHP' it brings up plenty of results. Quote Link to comment https://forums.phpfreaks.com/topic/229872-required-field-for-formtoemailphp/#findComment-1184392 Share on other sites More sharing options...
JonShent Posted March 9, 2011 Author Share Posted March 9, 2011 Ok I added that but its still seems to not be requiring a phone number, I don't need it to validate it if its a correct number I just need it too require having numbers between 0-9 in. Any more suggestions? As I say I am a real .php novice and my boss is really getting on my case about this :-\ Quote Link to comment https://forums.phpfreaks.com/topic/229872-required-field-for-formtoemailphp/#findComment-1184959 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.