Hi everyone,
I am a beginner web designer and a novice php user. I am a regular forum user and understand that you should always do a search and try to find the answer yourself but I have done that and didn't get any results (or I didn't understand them!).
So I ask for some assistance - either you can tell me the code or link me to the correct answer.
I am working on a website that I have built a enquiry form for and it has a php script for it. I have managed to get the form running properly and got the reCaptcha working correctly (with a custom error page) but I do not understand how to add custom error pages for incomplete email addresses, empty email addresses, or for a blank form? I tried using the same tactic I used for the reCaptcha error page but it didn't work - probably because I was guessing and just tried it in a bunch of different places.
The error msg that displays now is just a plain white page with the msg - Email address is invalid appearing at the top left.
While this is suitably functional it doesn't really look like much so I want to build a custom page for each error that could happen.
So the code is below - if anyone can point a beginner in the right direction I would be super happy. :mrgreen:
if you need anymore code or other details just tell me and I will post them up.
The url of the form page is http://www.sunsolutionshomeimprovement.com/onlinesales.html
This is the code I think you will need - I got it from a demo php script that I have modified. As I said I don't have much clue what I'm doing so I just posted it exactly how it looks - if I over did it I apologize... :oops:
68.// Validate email field.
69.
70.if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
71.{
72.
73.if(preg_match("/(%0A|%0D|\n+|\r+|:)/i",$_REQUEST['email'])){$errors[] = "Email address may not contain a new line or
74.a colon";}
75.
76.$_REQUEST['email'] = trim($_REQUEST['email']);
77.
78.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;}}}}}}
78.
79.)
80.
81.// Check referrer is from same site.
82.
83.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";}
84.
85.// Check for a blank form.
86.
87.function recursive_array_check_blank($element_value)
88.(
89.
90.global $set;
91.
92.if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}
93.else
94.
95.
96.foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}
97.
98.)
99.
100.)
101.
102.recursive_array_check_blank($_REQUEST);
103.
104.if(!$set){$errors[] = "You cannot send a blank form";}
105.
106.unset($set);
107.
108.// Display any errors and exit if errors exist.
109.
110.if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}
111.
112.if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}
113.
114.// Build message.
I don't think there is anymore that is relevant?
I just want to reiterate that I know nearly nothing about this stuff so if you could keep your answers simple it would help a lot - cheers!