Copy link to clipboard
Copied
Hello,
I have created a report page that uses the "FormToEmail" format to post the information on the page. The HTML page is: https://lotcs.org/sky_pilot_rpt.html. When I select the "Send Form" button, it works fine as far as I can tell, because after submitting, the PHP file comes up that tells the end user that the report was submitted successfully. However, the information on the form never shows up in my e-mail inbox. Below is the code for my PHP file. Thanks in advance for your help! Have a blessed day, eh?
All the best,
Chaplain Dale A. Iannello
<?php
$my_email = "[email removed by moderator]";
/*
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 = "http://www.lotcs.org/sky_pilot.html";
/*
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 = "FormToEmail2 Comments";
$headers = "From: " . $_REQUEST['email'];
mail($my_email,$subject,$message,$headers);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Sky Pilot Report Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<div>
<center>
<h1><b>Your Sky Pilot report has been submitted successfully!</b> </h1>
<h1 align="center"><img src="images/Artwork_MOC/Cootie Logos Registered/Cootie Logo Registered Trademark New Bug like on Supreme Flag.png" width="400" height="418" alt="cootie logo"></h1>
<h1 align="center"><strong>Keep 'em Smilin' in Beds of White!<br>
</strong><a href="<?php print $continue; ?>">Click here to continue</a></h1>
</center>
</div>
</body>
</html>
Copy link to clipboard
Copied
Check your e-mail Spam / Junk folder. That said, your form is woefully outdated, not secure and should be replaced with a more modern one.
HTML5 is the web standard since 2008.
Use a PHP sending library to process your form data. This one is recommended by hosting providers because it's secure and reliable.
https://github.com/PHPMailer/PHPMailer
Hope that helps.
Copy link to clipboard
Copied
Thank you for the information Nancy!
The PHP code came from when I was using CS4. Presently our chaplain/sky pilot reports are through Wordpress: https://skypilot.puptent1.org. But, the person who handles the reports has become ill and cannot continue. He wants me to create a report online on our main GoDaddy server instead of Wordpress. The form that I created in Dreamweaver CC is: https://lotcs.org/sky_pilot_rpt.html. It would be nice to submit the form to some sort of database so that the reports can go to Excel. Any help would be greatly appreciated. Have a nice day!
All the best,
Dale Iannello