phpform08 Posted July 18, 2008 Share Posted July 18, 2008 <? $domain = "mydomain.com"; // domain name of this site $to_email = "[email protected]"; // default destination email (override with hidden value 'to') $subj_prefix = "[Form Mail]"; // optional subject prefix to show where the mail is from // validate email address function function validemail($email) { // Check that there is only one @ symbol and that the lengths are right if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { return false; } // Split it into sections $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false; } } if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP or valid domain name $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { return false; // Not enough parts to domain } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { return false; } } } return true; } // header injection check function function hicheck($field) { if (eregi("\r", $field) || eregi("\n", $field) || eregi("\t", $field) || eregi("%08", $field) || eregi("%09", $field) || eregi("%0a", $field) || eregi("%0d", $field)) die("Access denied (0x0004)"); } // ensure script is only used with action="POST" if(!$_SERVER['REQUEST_METHOD'] == "POST") die("Access denied (0x0001)"); // ensure script is only called from this domain if (stripos($_SERVER['HTTP_REFERER'],$domain)===FALSE) die("Access denied (0x0002)"); // load the form fields $from_name = trim(stripslashes($_POST["from-name"])); $from_email = trim(stripslashes($_POST["from-email"])); $to = trim(stripslashes($_POST["to"])); $subject = trim(stripslashes($_POST["subject"])); $message = trim(stripslashes($_POST["message"])); $verification = $_POST["verification"]; $success = $_POST["success"]; $failure = $_POST["failure"]; // hicheck all fields that will go into the email headers hicheck($from_name); hicheck($from_email); hicheck($subject); if($to != "") { hicheck($to); $to_email = $to."@".$domain; } // validate form fields $response = ""; if(!validemail($from_email)) $response = "Email address is invalid. "; if($subject == "") $response .= "Subject line is blank. "; if($message == "") $response .= "Message is blank. "; if(md5($verification) != $_COOKIE['tpverify']) $response .= "Verification code is incorrect. "; // if no errors, send the message if($response == "") { if($from_name=="") { $from = $from_email; } else { $from = '"'.$from_name.'" <'.$from_email.'>'; } mail($to_email, trim($subj_prefix." ".$subject), $message, "From: $from"); setcookie('tpverify',''); // delete the cookie if(!empty($success)) { header("Location: ".$success); } else { echo "Message sent."; } } else { $response .= "<br/>Click the Back button, correct your error and try again."; if(!empty($failure)) { header("Location: ".$failure."?err=".urlencode($response)); } else { echo $response; } } ?> Here is the index.html <form action="formmail.php" method="POST"> <input type="hidden" name="success" value="email_ok.html"> <input type="hidden" name="failure" value="email_err.html"> <input type="hidden" name="to" value="sales"> <table border="0" cellpadding="2"> <tr> <td>From (name):</td> <td><input type="text" size="32" name="from-name"></td> </tr> <tr> <td>Email address:</td> <td><input type="text" size="32" name="from-email"></td> </tr> <tr> <td>Subject:</td> <td><input type="text" size="62" name="subject"></td> </tr> <tr> <td valign="top">Message:</td> <td valign="top"><textarea name="message" rows="15" cols="48"></textarea></td> </tr> <tr> <td>Verification code:</td> <td> <input type="text" size="8" name="verification"> <img src="captcha.php" alt="Verification code, please enter it" width="50" height="24" align="absbottom" /> </td> </tr> </table> <p><input type="submit" value="Send"></p> </form> Problems: - It doesn't display anything when the subject or any fields are blank like the code says. It just takes me to "emailerr.html" - (I renamed it from email_err.html to emailerr.html) - It doesn't send the mail when everything is right. It just takes me to "emailok.html" (I renamed it from email_ok.html to emailok.html) What did I do wrong? Link to comment https://forums.phpfreaks.com/topic/115452-simple/ Share on other sites More sharing options...
LooieENG Posted July 18, 2008 Share Posted July 18, 2008 <?php mail('[email protected]', 'test', 'test'); ?> Does it work? Link to comment https://forums.phpfreaks.com/topic/115452-simple/#findComment-593499 Share on other sites More sharing options...
phpform08 Posted July 18, 2008 Author Share Posted July 18, 2008 You mean does my php mailing work in general? yea I used another formmailer that was more simple and it sends the mails fine so I know it isn't my server or mailing problems. Has to be the code. (I changed the e-mail address to my address in the code in my original post too. I don't get it!) And that code you posted works I just tested it. Link to comment https://forums.phpfreaks.com/topic/115452-simple/#findComment-593503 Share on other sites More sharing options...
phpform08 Posted July 18, 2008 Author Share Posted July 18, 2008 No one knows??? Link to comment https://forums.phpfreaks.com/topic/115452-simple/#findComment-593605 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.