j05hr Posted December 18, 2008 Share Posted December 18, 2008 I downloaded a simple contact form to put on my site..I'm more of a designer then coder so don't really know php. It's just a simple name email address and message for now but when you go to enter an email address it says email address not valid, so how would i go about making it allow normal email addresses as i can't see where it goes. <table width="760" border="0" cellspacing="10" cellpadding="0" align="center"> <tr> <td align="center"> <?php if (isset($_POST["op"]) && ($_POST["op"]=="send")) { /******** START OF CONFIG SECTION *******/ $sendto = ""; $subject = "Website Contact Enquiry"; // Select if you want to check form for standard spam text $SpamCheck = "Y"; // Y or N $SpamReplaceText = "*content removed*"; // Error message prited if spam form attack found $SpamErrorMessage = "<p align=\"center\"><font color=\"red\">Malicious code content detected. </font><br><b>Your IP Number of <b>".getenv("REMOTE_ADDR")."</b> has been logged.</b></p>"; /******** END OF CONFIG SECTION *******/ $name = $HTTP_POST_VARS['name']; $email = $HTTP_POST_VARS['email']; $message = $HTTP_POST_VARS['message']; $headers = "From: $email\n"; $headers . "MIME-Version: 1.0\n" . "Content-Transfer-Encoding: 7bit\n" . "Content-type: text/html; charset = \"iso-8859-1\";\n\n"; if ($SpamCheck == "Y") { // Check for Website URL's in the form input boxes as if we block website URLs from the form, // then this will stop the spammers wastignt ime sending emails if (preg_match("/http/i", "$name")) {echo "$SpamErrorMessage"; exit();} if (preg_match("/http/i", "$email")) {echo "$SpamErrorMessage"; exit();} if (preg_match("/http/i", "$message")) {echo "$SpamErrorMessage"; exit();} // Patterm match search to strip out the invalid charcaters, this prevents the mail injection spammer $pattern = '/(;|\||`|>|<|&|^|"|'."\n|\r|'".'|{|}|[|]|\)|\()/i'; // build the pattern match string $name = preg_replace($pattern, "", $name); $email = preg_replace($pattern, "", $email); $message = preg_replace($pattern, "", $message); // Check for the injected headers from the spammer attempt // This will replace the injection attempt text with the string you have set in the above config section $find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i"); $email = preg_replace($find, "$SpamReplaceText", $email); $name = preg_replace($find, "$SpamReplaceText", $name); $message = preg_replace($find, "$SpamReplaceText", $message); // Check to see if the fields contain any content we want to ban if(stristr($name, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();} if(stristr($message, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();} // Do a check on the send email and subject text if(stristr($sendto, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();} if(stristr($subject, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();} } // Build the email body text $emailcontent = " ----------------------------------------------------------------------------- WEBSITE CONTACT ENQUIRY ----------------------------------------------------------------------------- Name: $name Email: $email Message: $message _______________________________________ End of Email "; // Check the email address enmtered matches the standard email address format if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $email)) { echo "<p>It appears you entered an invalid email address</p><p><a href='javascript: history.go(-1)'>Click here to go back</a>.</p>"; } elseif (!trim($name)) { echo "<p>Please go back and enter a Name</p><p><a href='javascript: history.go(-1)'>Click here to go back</a>.</p>"; } elseif (!trim($message)) { echo "<p>Please go back and type a Message</p><p><a href='javascript: history.go(-1)'>Click here to go back</a>.</p>"; } elseif (!trim($email)) { echo "<p>Please go back and enter an Email</p><p><a href='javascript: history.go(-1)'>Click here to go back</a>.</p>"; } // Sends out the email or will output the error message elseif (mail($sendto, $subject, $emailcontent, $headers)) { echo "<br><br><p><b>Thank You $name</b></p><p>We will be in touch as soon as possible.</p>"; } } else { ?> <p align="center">Please complete all details of your enquiry<br>and we will get back to you shortly.</p> <br> <form method="post"><INPUT NAME="op" TYPE="hidden" VALUE="send"> <table> <tr> <td><p>Name:</p></td> <td> <input name="name" type="text" size="30" maxlength="150"> </td> </tr> <tr> <td><p>E-mail:</p></td> <td> <input name="email" type="text" size="30" maxlength="150"> </td> </tr> <tr> <td valign="top"><p>Message:</p></td> <td><textarea name="message" cols="40" rows="6"></textarea></td> </tr> <tr><td></td> <td><input name="submit" type="submit" value="Send Message"></td></tr> </table> </form> <?php } ?> <p align="center"><font size="-2">Supplied by <a href="http://www.stevedawson.com">SteveDawson.com</a></font></p></td> </tr> </table> Quote Link to comment https://forums.phpfreaks.com/topic/137568-php-contact-form/ Share on other sites More sharing options...
ngreenwood6 Posted December 18, 2008 Share Posted December 18, 2008 replace this: if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $email)) { with this: if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){ Quote Link to comment https://forums.phpfreaks.com/topic/137568-php-contact-form/#findComment-719032 Share on other sites More sharing options...
premiso Posted December 18, 2008 Share Posted December 18, 2008 Change all of "$HTTP_POST_VARS" to "$_POST" $HTTP_POST_VARS is depreciated. Quote Link to comment https://forums.phpfreaks.com/topic/137568-php-contact-form/#findComment-719038 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.