Copy link to clipboard
Copied
Hi all
iam newto contact form n php downloaded FormToEmail.php from dreamweaverspot.
The issue is email is working even if i submit blank form.
my page link http://fagencomputers.com/contact.html.
Can anyone help me how to validate the form using php?
thanks in advance,
naveen
here is the php script
<?php
$my_email = "info@fagencomputers.com";
/*
Enter the continue link to offer the user after the form is sent. If you do not change this, your visitor will be given a continue link to your homepage.
If you do change it, remove the "/" symbol below and replace with the name of the page to link to, eg: "mypage.htm" or "http://www.elsewhere.com/page.htm"
*/
$continue = "/";
/*
Step 3:
Save this file (FormToEmail.php) and upload it together with your webpage containing the form to your webspace. IMPORTANT - The file name is case sensitive! You must save it exactly as it is named above! Do not put this script in your cgi-bin directory (folder) it may not work from there.
THAT'S IT, FINISHED!
You do not need to make any changes below this line.
*/
$errors = array();
// Remove $_COOKIE elements from $_REQUEST.
if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}
// Check all fields for an email header.
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);
// Validate email field.
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;}}}}}}
}
// Check referrer is from same site.
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";}
// Check for a blank 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);
// Display any errors and exit if errors exist.
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");}
// Build message.
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 = "FormToEmail Comments";
$headers = "From: " . $_REQUEST['email'];
mail($my_email,$subject,$message,$headers);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Dreamweaver Tutorial - Contact Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.thanks {
text-align:center;
margin-right: auto;
margin-left: auto;
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #333333;
width: 475px;
margin-top: 290px;
margin-bottom: 0px;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
font-weight: normal;
}
body {
background-image: url(../images/01-main-copy.jpg);
background-repeat: no-repeat;
background-position: center top;
background-color: #B7E4F9;
}
a:link {
color: #0066CC;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #006699;
}
a:hover {
text-decoration: underline;
color: #FF6600;
}
a:active {
text-decoration: none;
}
.style3 {
color: #0066CC;
font-weight: bold;
}
.logo {
color: #0066CC;
font-weight: bold;
float: left;
}
.text {
float: right;
padding-top: 20px;
padding-right: 20px;
padding-bottom: 20px;
padding-left: 20px;
font-weight: normal;
}
-->
</style>
</head>
<body text="#000000">
<div class="thanks">
<div class="logo"><b><a href="<?php print $continue; ?>"><img src="../images/logo.png" alt="fagen" width="216" height="86" border="0"></a><br>
</div>
<center>
<div class="text">
Thank you <?php print stripslashes($_REQUEST['name']); ?>
<br>
Your message has been sent
<p class="style3"><a href="<?php print $continue; ?>"><strong>Click here to continue</strong></a></p>
</div>
</center>
</div>
</body>
</html>
Copy link to clipboard
Copied
Hi All,
Thanks for reading my post,
I found a very cool javascript called gen_validatorv4 to validate the formtoemail.php
check this link.
http://www.javascript-coder.com/html-form/form-validation.phtml
thanks again
naveen
Copy link to clipboard
Copied
It seems that you are not aware of the fact that any javascript-based form validation is pretty much useless when used as solitary method -- all I´d need to do to outsmart this precaution is to disable javascript in my browser.
The only acceptable FormToEmail php script needs to be something that makes use of native PHP methods to validate the form fields and returns error messages if e.g. a required field is empty. If this script comes with an additional javascript-based layer of protection, that´s cool -- but this would be a bonus, not the main point.
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more