sircharlo Posted March 7, 2008 Share Posted March 7, 2008 I don't know why, but this (customized) version of Jack's Formmail.php script sends me an email twice... Can any one spot the problem ?Or maybe it is in my pages ? I use two different forms, and they both send two emails. Forms: http://www.trucsdeflorence.com/question.html http://www.trucsdeflorence.com/contact.htmlAlso, I think my script is in UTF-8. I don't know if this changes anything.Thank you !Script: <?/*############################################################################### PLEASE DO NOT REMOVE THIS HEADER!!!## COPYRIGHT NOTICE## FormMail.php v5.0# Copyright 2000-2004 Ai Graphics and Joe Lumbroso © All rights reserved.# Created 07/06/2000 Last Modified 10/28/2003# Joseph Lumbroso, [url="http://www.aigraphics.com"]http://www.aigraphics.com[/url], [url="http://www.dtheatre.com"]http://www.dtheatre.com[/url]# [url="http://www.dtheatre.com/scripts/"]http://www.dtheatre.com/scripts/[/url]################################################################################ This cannot and will not be inforced but I would appreciate a link back# to any of these sites:# [url="http://www.dtheatre.com"]http://www.dtheatre.com[/url]# [url="http://www.aigraphics.com"]http://www.aigraphics.com[/url]# [url="http://www.dtheatre.com/scripts/"]http://www.dtheatre.com/scripts/[/url]## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR# OTHER DEALINGS IN THE SOFTWARE.###############################################################################*/// for ultimate security, use this instead of using the form$recipient = "email@email.email"; // youremail@domain.com// bcc emails (separate multiples with commas (,))$bcc = "";// referers.. domains/ips that you will allow forms to// reside on.$referers = array ('www.trucsdeflorence.com','trucsdeflorence.com');// banned emails, these will be email addresses of people// who are blocked from using the script (requested)$banlist = array ('www.stupidwebsite.com');// field / value seperatordefine("SEPARATOR", ($separator)?$separator:": ");// content newlinedefine("NEWLINE", ($newline)?$newline:"\n");// formmail version (for debugging mostly)define("VERSION", "5.0");// our mighty error function..function print_error($reason,$type = 0) {// build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet); // for missing required data if ($type == "missing") { if ($missing_field_redirect) { header("Location: $missing_field_redirect?error=$reason"); exit; } else { ?><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv="Content-type" content= "text/html; charset=utf-8"/> <meta name='description' content= 'Obtenez des réponces à vos questions sur la médecine douce, la santé, et la naturopatie.'/> <meta name='keywords' content= 'médecine douce, consultation naturopathe gratuit, question santé, fibromyalgie, embonpoint, migraine, thyroïde, hypothyroïdie,arthrithe'/> <title>Bienvenue aux Trucs de Florence !</title> <link href='style.css' type='text/css' rel='stylesheet'/> </head> <body> <div id='page_wrapper'> <div id='page_header'> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <li> <a href='index.html'>Accueil</a> </li> <li> <a href='medecine_douce.html'>Médecines Douces</a> </li> <li> <a href='maux.html'>Maux</a> </li> <!--<li><a href='chronique.html'>Chronique</a></li> <li><a href='archives.html'>Archives</a></li>--> <li> <a href='question.html'>Vous avez une question ?</a> </li> <li> <a href='avis.html'>Contact</a> </li> <li> <a href='avis.html'>Avis</a> </li> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> </div> <div id='right_side'> </div> <div id='center'> <p>Le formulaire n'a pas été envoyé. Voici la raison:</p> <ul class="error"><? echo $reason."\n"; ?></ul> Veuillez entrer les données requises puis essayer de nouveau. </div> </div> </div> </body></html><? } } else { // every other error ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv="Content-type" content= "text/html; charset=utf-8"/> <meta name='description' content= 'Obtenez des réponces à vos questions sur la médecine douce, la santé, et la naturopatie.'/> <meta name='keywords' content= 'médecine douce, consultation naturopathe gratuit, question santé, fibromyalgie, embonpoint, migraine, thyroïde, hypothyroïdie,arthrithe'/> <title>Bienvenue aux Trucs de Florence !</title> <link href='style.css' type='text/css' rel='stylesheet'/> </head> <body> <div id='page_wrapper'> <div id='page_header'> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <li> <a href='index.html'>Accueil</a> </li> <li> <a href='medecine_douce.html'>Médecines Douces</a> </li> <li> <a href='maux.html'>Maux</a> </li> <!--<li><a href='chronique.html'>Chronique</a></li> <li><a href='archives.html'>Archives</a></li>--> <li> <a href='question.html'>Vous avez une question ?</a> </li> <li> <a href='avis.html'>Contact</a> </li> <li> <a href='avis.html'>Avis</a> </li> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> </div> <div id='right_side'> </div> <div id='center'> <p>Le formulaire n'a pu être envoyé. Veuillez réessayer.</p> </div> </div> </div> </body></html> <? } exit;}// function to check the banlist// suggested by a whole lot of people.. Thanksfunction check_banlist($banlist, $email) { if (count($banlist)) { $allow = true; foreach($banlist as $banned) { $temp = explode("@", $banned); if ($temp[0] == "*") { $temp2 = explode("@", $email); if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1]))) $allow = false; } else { if (trim(strtolower($email)) == trim(strtolower($banned))) $allow = false; } } } if (!$allow) { print_error("Votre adresse email est bannie."); }}// function to check the referer for security reasons.// contributed by some one who's name got lost.. Thanks// goes out to him any way.function check_referer($referers) { if (count($referers)) { $found = false; $temp = explode("/",getenv("HTTP_REFERER")); $referer = $temp[2]; if ($referer=="") {$referer = $_SERVER['HTTP_REFERER']; list($remove,$stuff)=split('//',$referer,2); list($home,$stuff)=split('/',$stuff,2); $referer = $home; } for ($x=0; $x < count($referers); $x++) { if (eregi ($referers[$x], $referer)) { $found = true; } } if ($referer =="") $found = false; if (!$found){ print_error("Le formulaire que vous avez rempli se trouve sur un site Web non-autorisé."); error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0); } return $found; } else { return true; // not a good idea, if empty, it will allow it. }}if ($referers) check_referer($referers);if ($banlist) check_banlist($banlist, $email);// This function takes the sorts, excludes certain keys and // makes a pretty content string.function parse_form($array, $sort = "") { // build reserved keyword array $reserved_keys[] = "MAX_FILE_SIZE"; $reserved_keys[] = "required"; $reserved_keys[] = "redirect"; $reserved_keys[] = "require"; $reserved_keys[] = "path_to_file"; $reserved_keys[] = "recipient"; $reserved_keys[] = "subject"; $reserved_keys[] = "sort"; $reserved_keys[] = "style_sheet"; $reserved_keys[] = "bgcolor"; $reserved_keys[] = "text_color"; $reserved_keys[] = "link_color"; $reserved_keys[] = "vlink_color"; $reserved_keys[] = "alink_color"; $reserved_keys[] = "title"; $reserved_keys[] = "missing_fields_redirect"; $reserved_keys[] = "env_report"; $reserved_keys[] = "submit"; if (count($array)) { if (is_array($sort)) { foreach ($sort as $field) { $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1; if ($reserved_violation != 1) { if (is_array($array[$field])) { for ($z=0;$z<count($array[$field]);$z++) $content .= $field.SEPARATOR.$array[$field][$z].NEWLINE; } else $content .= $field.SEPARATOR.$array[$field].NEWLINE; } } } while (list($key, $val) = each($array)) { $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) if ($key == $reserved_keys[$ri]) $reserved_violation = 1; for ($ri=0; $ri<count($sort); $ri++) if ($key == $sort[$ri]) $reserved_violation = 1; // prepare content if ($reserved_violation != 1) { if (is_array($val)) { for ($z=0;$z<count($val);$z++) $content .= $key.SEPARATOR.$val[$z].NEWLINE; } else $content .= $key.SEPARATOR.$val.NEWLINE; } } } return $content;}// mail the content we figure out in the following stepsfunction mail_it($content, $subject, $email, $recipient) { global $attachment_chunk, $attachment_name, $attachment_type, $attachment_sent, $bcc;// $ob = "----=_OuterBoundary_000";// $ib = "----=_InnerBoundery_001"; // $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: ".$email."\n"; $headers .= "To: ".$recipient."\n"; $headers .= "Reply-To: ".$email."\n";// if ($bcc) $headers .= "Bcc: ".$bcc."\n"; // $headers .= "X-Priority: 1\n"; // $headers .= "X-Mailer: DT Formmail".VERSION."\n"; // $headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".//$ob."\"\n"; // $message = "This is a multi-part message in MIME format.\n";// $message .= "\n--".$ob."\n";// $message .= "Content-Type: multipart/alternative;\n\tboundary=\"".// $ib."\"\n\n";// $message .= "\n--".$ib."\n";// $message .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1// \"\n";// $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= $content."\n\n";// $message .= "\n--".$ib."--\n";// if ($attachment_name && !$attachment_sent) {// $message .= "\n--".$ob."\n";// $message .= "Content-Type: $attachment_type;\n\tname=\"".// $attachment_name."\"\n";// $message .= "Content-Transfer-Encoding: base64\n";// $message .= "Content-Disposition: attachment;\n\tfilename=\"".// $attachment_name."\"\n\n";// $message .= $attachment_chunk;// $message .= "\n\n";// $attachment_sent = 1;// } $message .= "\n--".$ob."--\n"; mail($recipient, $subject, $message, $headers);}// take in the body building arguments and build the body tag for page display//function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {// if ($style_sheet)// echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";// if ($title)// echo "<title>$title</title>\n";// if (!$bgcolor)// $bgcolor = "#FFFFFF";// if (!$text_color)// $text_color = "#000000";// if (!$link_color)// $link_color = "#0000FF";// if (!$vlink_color)// $vlink_color = "#FF0000";// if (!$alink_color)// $alink_color = "#000088";// if ($background)// $background = "background=\"$background\"";// echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";//}// check for a recipient email address and check the validity of it// Thanks to Bradley miller (bradmiller@accesszone.com) for pointing// out the need for multiple recipient checking and providing the code.$recipient_in = split(',',$recipient);for ($i=0;$i<count($recipient_in);$i++) { $recipient_to_test = trim($recipient_in[$i]); if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,6}$", $recipient_to_test)) { print_error("Votre adresse email n'est pas valide."); }}// This is because I originally had it require but too many people// were used to Matt's Formmail.pl which used required instead.if ($required) $require = $required;// handle the required fieldsif ($require) { // seperate at the commas $require = ereg_replace( " +", "", $require); $required = split(",",$require); for ($i=0;$i<count($required);$i++) { $string = trim($required[$i]); // check if they exsist if((!(${$string})) || (!(${$string}))) { // if the missing_fields_redirect option is on: redirect them if ($missing_fields_redirect) { header ("Location: $missing_fields_redirect"); exit; } $require; $missing_field_list .= "<li>Ce champ requis est vide: <span class=\"missing\">$required[$i]</span></li>\n"; } } // send error to our mighty error function if ($missing_field_list) print_error($missing_field_list,"missing");}// check the email fields for validityif (($email) || ($EMAIL)) { $email = trim($email); if ($EMAIL) $email = trim($EMAIL); if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $email)) print_error("Veuillez entrer une adresse email valide."); $EMAIL = $email;}// check zipcodes for validityif (($ZIP_CODE) || ($zip_code)) { $zip_code = trim($zip_code); if ($ZIP_CODE) $zip_code = trim($ZIP_CODE); if (!ereg("(^[0-9]{5})-([0-9]{4}$)", trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$", trim($zip_code))) && (!ereg("(^[0-9]{5})", trim($zip_code)))) print_error("Votre code postal n'est pas valide.");}// check phone for validityif (($PHONE_NO) || ($phone_no)) { $phone_no = trim($phone_no); if ($PHONE_NO) $phone_no = trim($PHONE_NO); if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $phone_no)) print_error("Votre numéro de téléphone n'est pas valide.");}// check phone for validityif (($FAX_NO) || ($fax_no)) { $fax_no = trim($fax_no); if ($FAX_NO) $fax_no = trim($FAX_NO); if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $fax_no)) print_error("Votre numéro de télécopieur n'est pas valide.");}// sort alphabetic or prepare an orderif ($sort == "alphabetic") { uksort($HTTP_POST_VARS, "strnatcasecmp");} elseif ((ereg('^order:.*,.*', $sort)) && ($list = explode(',', ereg_replace('^order:', '', $sort)))) { $sort = $list;} // prepare the content$content = parse_form($HTTP_POST_VARS, $sort);// check for an attachment if there is a file upload itif ($attachment_name) { if ($attachment_size > 0) { if (!$attachment_type) $attachment_type = "application/unknown"; $content .= "Attached File: ".$attachment_name."\n"; $fp = fopen($attachment, "r"); $attachment_chunk = fread($fp, filesize($attachment)); $attachment_chunk = base64_encode($attachment_chunk); $attachment_chunk = chunk_split($attachment_chunk); }}// check for a file if there is a file upload itif ($file_name) { if ($file_size > 0) { if (!ereg("/$", $path_to_file)) $path_to_file = $path_to_file."/"; $location = $path_to_file.$file_name; if (file_exists($path_to_file.$file_name)) $location = $path_to_file.rand(1000,3000).".".$file_name; copy($file,$location); unlink($file); $content .= "Fichier transféré: ".$location."\n"; }}// second file (see manual for instructions on how to add more.)if ($file2_name) { if ($file_size > 0) { if (!ereg("/$", $path_to_file)) $path_to_file = $path_to_file."/"; $location = $path_to_file.$file2_name; if (file_exists($path_to_file.$file2_name)) $location = $path_to_file.rand(1000,3000).".".$file2_name; copy($file2,$location); unlink($file2); $content .= "Fichier transféré: ".$location."\n"; }}// if the env_report option is on: get eviromental variablesif ($env_report) { $env_report = ereg_replace( " +", "", $env_report); $env_reports = split(",",$env_report); $content .= "\n------ eviromental variables ------\n"; for ($i=0;$i<count($env_reports);$i++) { $string = trim($env_reports[$i]); if ($env_reports[$i] == "REMOTE_HOST") $content .= "REMOTE HOST: ".$REMOTE_HOST."\n"; if ($env_reports[$i] == "REMOTE_USER") $content .= "REMOTE USER: ". $REMOTE_USER."\n"; if ($env_reports[$i] == "REMOTE_ADDR") $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n"; if ($env_reports[$i] == "HTTP_USER_AGENT") $content .= "BROWSER: ". $HTTP_USER_AGENT."\n"; }}// send it offmail_it(stripslashes($content), ($subject)?stripslashes($subject):"Form Submission", $email, $recipient);//if (file_exists($ar_file)) {// $fd = fopen($ar_file, "rb");// $ar_message = fread($fd, filesize($ar_file));// fclose($fd);// mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Form Submission", ($ar_from)?$ar_from:$recipient, $email);//}// if the redirect option is set: redirect themif ($redirect) { header("Location: $redirect"); exit;} else { echo "Merci de votre envoi.\n"; exit;}// <---------- THE END ----------> // Link to comment Share on other sites More sharing options...
Wander Posted March 7, 2008 Share Posted March 7, 2008 after "// send it off" u use mail_it() which sends the mail, and in the if() statement right behind it, it also uses the mail_it(), which sends it again Link to comment Share on other sites More sharing options...
sircharlo Posted March 12, 2008 Author Share Posted March 12, 2008 No, it's not that.However, I did notice that in my client's email inbox, her email was specified twice, like this: To: email@email.email, email@email.emailCould it be that the recipient variable is being sent twice ?Any other ideas ?Thanks.<?/*############################################################################### PLEASE DO NOT REMOVE THIS HEADER!!!## COPYRIGHT NOTICE## FormMail.php v5.0# Copyright 2000-2004 Ai Graphics and Joe Lumbroso © All rights reserved.# Created 07/06/2000 Last Modified 10/28/2003# Joseph Lumbroso, [url="http://www.aigraphics.com"]http://www.aigraphics.com[/url], [url="http://www.dtheatre.com"]http://www.dtheatre.com[/url]# [url="http://www.dtheatre.com/scripts/"]http://www.dtheatre.com/scripts/[/url]################################################################################ This cannot and will not be inforced but I would appreciate a link back# to any of these sites:# [url="http://www.dtheatre.com"]http://www.dtheatre.com[/url]# [url="http://www.aigraphics.com"]http://www.aigraphics.com[/url]# [url="http://www.dtheatre.com/scripts/"]http://www.dtheatre.com/scripts/[/url]## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR# OTHER DEALINGS IN THE SOFTWARE.###############################################################################*/// for ultimate security, use this instead of using the form$recipient = "email@email.email"; // youremail@domain.com// bcc emails (separate multiples with commas (,))$bcc = "";// referers.. domains/ips that you will allow forms to// reside on.$referers = array ('www.trucsdeflorence.com','trucsdeflorence.com');// banned emails, these will be email addresses of people// who are blocked from using the script (requested)$banlist = array ('www.stupidwebsite.com');// field / value seperatordefine("SEPARATOR", ($separator)?$separator:": ");// content newlinedefine("NEWLINE", ($newline)?$newline:"\n");// formmail version (for debugging mostly)define("VERSION", "5.0");// our mighty error function..function print_error($reason,$type = 0) {// build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet); // for missing required data if ($type == "missing") { if ($missing_field_redirect) { header("Location: $missing_field_redirect?error=$reason"); exit; } else { ?><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv="Content-type" content= "text/html; charset=utf-8"/> <meta name='description' content= 'Obtenez des réponces à vos questions sur la médecine douce, la santé, et la naturopatie.'/> <meta name='keywords' content= 'médecine douce, consultation naturopathe gratuit, question santé, fibromyalgie, embonpoint, migraine, thyroïde, hypothyroïdie,arthrithe'/> <title>Bienvenue aux Trucs de Florence !</title> <link href='style.css' type='text/css' rel='stylesheet'/> </head> <body> <div id='page_wrapper'> <div id='page_header'> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <li> <a href='index.html'>Accueil</a> </li> <li> <a href='medecine_douce.html'>Médecines Douces</a> </li> <li> <a href='maux.html'>Maux</a> </li> <!--<li><a href='chronique.html'>Chronique</a></li> <li><a href='archives.html'>Archives</a></li>--> <li> <a href='question.html'>Vous avez une question ?</a> </li> <li> <a href='avis.html'>Contact</a> </li> <li> <a href='avis.html'>Avis</a> </li> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> </div> <div id='right_side'> </div> <div id='center'> <p>Le formulaire n'a pas été envoyé. Voici la raison:</p> <ul class="error"><? echo $reason."\n"; ?></ul> Veuillez entrer les données requises puis essayer de nouveau. </div> </div> </div> </body></html><? } } else { // every other error ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv="Content-type" content= "text/html; charset=utf-8"/> <meta name='description' content= 'Obtenez des réponces à vos questions sur la médecine douce, la santé, et la naturopatie.'/> <meta name='keywords' content= 'médecine douce, consultation naturopathe gratuit, question santé, fibromyalgie, embonpoint, migraine, thyroïde, hypothyroïdie,arthrithe'/> <title>Bienvenue aux Trucs de Florence !</title> <link href='style.css' type='text/css' rel='stylesheet'/> </head> <body> <div id='page_wrapper'> <div id='page_header'> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <li> <a href='index.html'>Accueil</a> </li> <li> <a href='medecine_douce.html'>Médecines Douces</a> </li> <li> <a href='maux.html'>Maux</a> </li> <!--<li><a href='chronique.html'>Chronique</a></li> <li><a href='archives.html'>Archives</a></li>--> <li> <a href='question.html'>Vous avez une question ?</a> </li> <li> <a href='avis.html'>Contact</a> </li> <li> <a href='avis.html'>Avis</a> </li> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> </div> <div id='right_side'> </div> <div id='center'> <p>Le formulaire n'a pu être envoyé. Veuillez réessayer.</p> </div> </div> </div> </body></html> <? } exit;}// function to check the banlist// suggested by a whole lot of people.. Thanksfunction check_banlist($banlist, $email) { if (count($banlist)) { $allow = true; foreach($banlist as $banned) { $temp = explode("@", $banned); if ($temp[0] == "*") { $temp2 = explode("@", $email); if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1]))) $allow = false; } else { if (trim(strtolower($email)) == trim(strtolower($banned))) $allow = false; } } } if (!$allow) { print_error("Votre adresse email est bannie."); }}// function to check the referer for security reasons.// contributed by some one who's name got lost.. Thanks// goes out to him any way.function check_referer($referers) { if (count($referers)) { $found = false; $temp = explode("/",getenv("HTTP_REFERER")); $referer = $temp[2]; if ($referer=="") {$referer = $_SERVER['HTTP_REFERER']; list($remove,$stuff)=split('//',$referer,2); list($home,$stuff)=split('/',$stuff,2); $referer = $home; } for ($x=0; $x < count($referers); $x++) { if (eregi ($referers[$x], $referer)) { $found = true; } } if ($referer =="") $found = false; if (!$found){ print_error("Le formulaire que vous avez rempli se trouve sur un site Web non-autorisé."); error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0); } return $found; } else { return true; // not a good idea, if empty, it will allow it. }}if ($referers) check_referer($referers);if ($banlist) check_banlist($banlist, $email);// This function takes the sorts, excludes certain keys and // makes a pretty content string.function parse_form($array, $sort = "") { // build reserved keyword array $reserved_keys[] = "MAX_FILE_SIZE"; $reserved_keys[] = "required"; $reserved_keys[] = "redirect"; $reserved_keys[] = "require"; $reserved_keys[] = "path_to_file"; $reserved_keys[] = "recipient"; $reserved_keys[] = "subject"; $reserved_keys[] = "sort"; $reserved_keys[] = "style_sheet"; $reserved_keys[] = "bgcolor"; $reserved_keys[] = "text_color"; $reserved_keys[] = "link_color"; $reserved_keys[] = "vlink_color"; $reserved_keys[] = "alink_color"; $reserved_keys[] = "title"; $reserved_keys[] = "missing_fields_redirect"; $reserved_keys[] = "env_report"; $reserved_keys[] = "submit"; if (count($array)) { if (is_array($sort)) { foreach ($sort as $field) { $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1; if ($reserved_violation != 1) { if (is_array($array[$field])) { for ($z=0;$z<count($array[$field]);$z++) $content .= $field.SEPARATOR.$array[$field][$z].NEWLINE; } else $content .= $field.SEPARATOR.$array[$field].NEWLINE; } } } while (list($key, $val) = each($array)) { $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) if ($key == $reserved_keys[$ri]) $reserved_violation = 1; for ($ri=0; $ri<count($sort); $ri++) if ($key == $sort[$ri]) $reserved_violation = 1; // prepare content if ($reserved_violation != 1) { if (is_array($val)) { for ($z=0;$z<count($val);$z++) $content .= $key.SEPARATOR.$val[$z].NEWLINE; } else $content .= $key.SEPARATOR.$val.NEWLINE; } } } return $content;}// mail the content we figure out in the following stepsfunction mail_it($content, $subject, $email, $recipient) { global $attachment_chunk, $attachment_name, $attachment_type, $attachment_sent, $bcc;// $ob = "----=_OuterBoundary_000";// $ib = "----=_InnerBoundery_001"; // $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: ".$email."\n"; $headers .= "To: ".$recipient."\n"; $headers .= "Reply-To: ".$email."\n";// if ($bcc) $headers .= "Bcc: ".$bcc."\n"; // $headers .= "X-Priority: 1\n"; // $headers .= "X-Mailer: DT Formmail".VERSION."\n"; // $headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".//$ob."\"\n"; // $message = "This is a multi-part message in MIME format.\n";// $message .= "\n--".$ob."\n";// $message .= "Content-Type: multipart/alternative;\n\tboundary=\"".// $ib."\"\n\n";// $message .= "\n--".$ib."\n";// $message .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1// \"\n";// $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= $content."\n\n";// $message .= "\n--".$ib."--\n";// if ($attachment_name && !$attachment_sent) {// $message .= "\n--".$ob."\n";// $message .= "Content-Type: $attachment_type;\n\tname=\"".// $attachment_name."\"\n";// $message .= "Content-Transfer-Encoding: base64\n";// $message .= "Content-Disposition: attachment;\n\tfilename=\"".// $attachment_name."\"\n\n";// $message .= $attachment_chunk;// $message .= "\n\n";// $attachment_sent = 1;// } $message .= "\n--".$ob."--\n"; mail($recipient, $subject, $message, $headers);}// take in the body building arguments and build the body tag for page display//function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {// if ($style_sheet)// echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";// if ($title)// echo "<title>$title</title>\n";// if (!$bgcolor)// $bgcolor = "#FFFFFF";// if (!$text_color)// $text_color = "#000000";// if (!$link_color)// $link_color = "#0000FF";// if (!$vlink_color)// $vlink_color = "#FF0000";// if (!$alink_color)// $alink_color = "#000088";// if ($background)// $background = "background=\"$background\"";// echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";//}// check for a recipient email address and check the validity of it// Thanks to Bradley miller (bradmiller@accesszone.com) for pointing// out the need for multiple recipient checking and providing the code.$recipient_in = split(',',$recipient);for ($i=0;$i<count($recipient_in);$i++) { $recipient_to_test = trim($recipient_in[$i]); if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,6}$", $recipient_to_test)) { print_error("Votre adresse email n'est pas valide."); }}// This is because I originally had it require but too many people// were used to Matt's Formmail.pl which used required instead.if ($required) $require = $required;// handle the required fieldsif ($require) { // seperate at the commas $require = ereg_replace( " +", "", $require); $required = split(",",$require); for ($i=0;$i<count($required);$i++) { $string = trim($required[$i]); // check if they exsist if((!(${$string})) || (!(${$string}))) { // if the missing_fields_redirect option is on: redirect them if ($missing_fields_redirect) { header ("Location: $missing_fields_redirect"); exit; } $require; $missing_field_list .= "<li>Ce champ requis est vide: <span class=\"missing\">$required[$i]</span></li>\n"; } } // send error to our mighty error function if ($missing_field_list) print_error($missing_field_list,"missing");}// check the email fields for validityif (($email) || ($EMAIL)) { $email = trim($email); if ($EMAIL) $email = trim($EMAIL); if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $email)) print_error("Veuillez entrer une adresse email valide."); $EMAIL = $email;}// check zipcodes for validityif (($ZIP_CODE) || ($zip_code)) { $zip_code = trim($zip_code); if ($ZIP_CODE) $zip_code = trim($ZIP_CODE); if (!ereg("(^[0-9]{5})-([0-9]{4}$)", trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$", trim($zip_code))) && (!ereg("(^[0-9]{5})", trim($zip_code)))) print_error("Votre code postal n'est pas valide.");}// check phone for validityif (($PHONE_NO) || ($phone_no)) { $phone_no = trim($phone_no); if ($PHONE_NO) $phone_no = trim($PHONE_NO); if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $phone_no)) print_error("Votre numéro de téléphone n'est pas valide.");}// check phone for validityif (($FAX_NO) || ($fax_no)) { $fax_no = trim($fax_no); if ($FAX_NO) $fax_no = trim($FAX_NO); if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $fax_no)) print_error("Votre numéro de télécopieur n'est pas valide.");}// sort alphabetic or prepare an orderif ($sort == "alphabetic") { uksort($HTTP_POST_VARS, "strnatcasecmp");} elseif ((ereg('^order:.*,.*', $sort)) && ($list = explode(',', ereg_replace('^order:', '', $sort)))) { $sort = $list;} // prepare the content$content = parse_form($HTTP_POST_VARS, $sort);// check for an attachment if there is a file upload itif ($attachment_name) { if ($attachment_size > 0) { if (!$attachment_type) $attachment_type = "application/unknown"; $content .= "Attached File: ".$attachment_name."\n"; $fp = fopen($attachment, "r"); $attachment_chunk = fread($fp, filesize($attachment)); $attachment_chunk = base64_encode($attachment_chunk); $attachment_chunk = chunk_split($attachment_chunk); }}// check for a file if there is a file upload itif ($file_name) { if ($file_size > 0) { if (!ereg("/$", $path_to_file)) $path_to_file = $path_to_file."/"; $location = $path_to_file.$file_name; if (file_exists($path_to_file.$file_name)) $location = $path_to_file.rand(1000,3000).".".$file_name; copy($file,$location); unlink($file); $content .= "Fichier transféré: ".$location."\n"; }}// second file (see manual for instructions on how to add more.)if ($file2_name) { if ($file_size > 0) { if (!ereg("/$", $path_to_file)) $path_to_file = $path_to_file."/"; $location = $path_to_file.$file2_name; if (file_exists($path_to_file.$file2_name)) $location = $path_to_file.rand(1000,3000).".".$file2_name; copy($file2,$location); unlink($file2); $content .= "Fichier transféré: ".$location."\n"; }}// if the env_report option is on: get eviromental variablesif ($env_report) { $env_report = ereg_replace( " +", "", $env_report); $env_reports = split(",",$env_report); $content .= "\n------ eviromental variables ------\n"; for ($i=0;$i<count($env_reports);$i++) { $string = trim($env_reports[$i]); if ($env_reports[$i] == "REMOTE_HOST") $content .= "REMOTE HOST: ".$REMOTE_HOST."\n"; if ($env_reports[$i] == "REMOTE_USER") $content .= "REMOTE USER: ". $REMOTE_USER."\n"; if ($env_reports[$i] == "REMOTE_ADDR") $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n"; if ($env_reports[$i] == "HTTP_USER_AGENT") $content .= "BROWSER: ". $HTTP_USER_AGENT."\n"; }}// send it offmail_it(stripslashes($content), ($subject)?stripslashes($subject):"Form Submission", $email, $recipient);//if (file_exists($ar_file)) {// $fd = fopen($ar_file, "rb");// $ar_message = fread($fd, filesize($ar_file));// fclose($fd);// mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Form Submission", ($ar_from)?$ar_from:$recipient, $email);//}// if the redirect option is set: redirect themif ($redirect) { header("Location: $redirect"); exit;} else { echo "Merci de votre envoi.\n"; exit;}// <---------- THE END ----------> // Link to comment Share on other sites More sharing options...
justsomeguy Posted March 13, 2008 Share Posted March 13, 2008 Print the recipient list before the mail gets sent to find out. Link to comment Share on other sites More sharing options...
sircharlo Posted March 13, 2008 Author Share Posted March 13, 2008 I know NOTHING (except for what is obvious) about PHP, so I really don't know how ! Link to comment Share on other sites More sharing options...
justsomeguy Posted March 13, 2008 Share Posted March 13, 2008 You don't have to know a lot about PHP, you just have to think logically. There is a call near the end of that code to the mail_it function. Before or after that function call print the $recipient variable. Link to comment Share on other sites More sharing options...
sircharlo Posted March 20, 2008 Author Share Posted March 20, 2008 Good grief ! I found my problem ! This was the faulty code: <?/*############################################################################### PLEASE DO NOT REMOVE THIS HEADER!!!## COPYRIGHT NOTICE## FormMail.php v5.0# Copyright 2000-2004 Ai Graphics and Joe Lumbroso © All rights reserved.# Created 07/06/2000 Last Modified 10/28/2003# Joseph Lumbroso, [url="http://www.aigraphics.com"]http://www.aigraphics.com[/url], [url="http://www.dtheatre.com"]http://www.dtheatre.com[/url]# [url="http://www.dtheatre.com/scripts/"]http://www.dtheatre.com/scripts/[/url]################################################################################ This cannot and will not be inforced but I would appreciate a link back# to any of these sites:# [url="http://www.dtheatre.com"]http://www.dtheatre.com[/url]# [url="http://www.aigraphics.com"]http://www.aigraphics.com[/url]# [url="http://www.dtheatre.com/scripts/"]http://www.dtheatre.com/scripts/[/url]## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR# OTHER DEALINGS IN THE SOFTWARE.###############################################################################*/// for ultimate security, use this instead of using the form$recipient = 'jbarbier@trucsdeflorence.com'; // youremail@domain.com// bcc emails (separate multiples with commas (,))$bcc = "";// referers.. domains/ips that you will allow forms to// reside on.$referers = array ('www.trucsdeflorence.com','trucsdeflorence.com');// banned emails, these will be email addresses of people// who are blocked from using the script (requested)$banlist = array ('www.stupidwebsite.com');// field / value seperatordefine("SEPARATOR", ($separator)?$separator:": ");// content newlinedefine("NEWLINE", ($newline)?$newline:"\n");// formmail version (for debugging mostly)define("VERSION", "5.0");// our mighty error function..function print_error($reason,$type = 0) {// build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet); // for missing required data if ($type == "missing") { if ($missing_field_redirect) { header("Location: $missing_field_redirect?error=$reason"); exit; } else { ?><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv="Content-type" content= "text/html; charset=utf-8"/> <meta name='description' content= 'Obtenez des réponces à vos questions sur la médecine douce, la santé, et la naturopatie.'/> <meta name='keywords' content= 'médecine douce, consultation naturopathe gratuit, question santé, fibromyalgie, embonpoint, migraine, thyroïde, hypothyroïdie,arthrithe'/> <title>Bienvenue aux Trucs de Florence !</title> <link href='style.css' type='text/css' rel='stylesheet'/> </head> <body> <div id='page_wrapper'> <div id='page_header'> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <li> <a href='index.html'>Accueil</a> </li> <li> <a href='medecine_douce.html'>Médecines Douces</a> </li> <li> <a href='maux.html'>Maux</a> </li> <!--<li><a href='chronique.html'>Chronique</a></li> <li><a href='archives.html'>Archives</a></li>--> <li> <a href='question.html'>Vous avez une question ?</a> </li> <li> <a href='avis.html'>Contact</a> </li> <li> <a href='avis.html'>Avis</a> </li> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> </div> <div id='right_side'> </div> <div id='center'> <p>Le formulaire n'a pas été envoyé. Voici la raison:</p> <ul class="error"><? echo $reason."\n"; ?></ul> Veuillez entrer les données requises puis essayer de nouveau. </div> </div> </div> </body></html><? } } else { // every other error ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv="Content-type" content= "text/html; charset=utf-8"/> <meta name='description' content= 'Obtenez des réponces à vos questions sur la médecine douce, la santé, et la naturopatie.'/> <meta name='keywords' content= 'médecine douce, consultation naturopathe gratuit, question santé, fibromyalgie, embonpoint, migraine, thyroïde, hypothyroïdie,arthrithe'/> <title>Bienvenue aux Trucs de Florence !</title> <link href='style.css' type='text/css' rel='stylesheet'/> </head> <body> <div id='page_wrapper'> <div id='page_header'> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <li> <a href='index.html'>Accueil</a> </li> <li> <a href='medecine_douce.html'>Médecines Douces</a> </li> <li> <a href='maux.html'>Maux</a> </li> <!--<li><a href='chronique.html'>Chronique</a></li> <li><a href='archives.html'>Archives</a></li>--> <li> <a href='question.html'>Vous avez une question ?</a> </li> <li> <a href='avis.html'>Contact</a> </li> <li> <a href='avis.html'>Avis</a> </li> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> </div> <div id='right_side'> </div> <div id='center'> <p>Le formulaire n'a pu être envoyé. Veuillez réessayer.</p> </div> </div> </div> </body></html> <? } exit;}// function to check the banlist// suggested by a whole lot of people.. Thanksfunction check_banlist($banlist, $email) { if (count($banlist)) { $allow = true; foreach($banlist as $banned) { $temp = explode("@", $banned); if ($temp[0] == "*") { $temp2 = explode("@", $email); if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1]))) $allow = false; } else { if (trim(strtolower($email)) == trim(strtolower($banned))) $allow = false; } } } if (!$allow) { print_error("Votre adresse email est bannie."); }}// function to check the referer for security reasons.// contributed by some one who's name got lost.. Thanks// goes out to him any way.function check_referer($referers) { if (count($referers)) { $found = false; $temp = explode("/",getenv("HTTP_REFERER")); $referer = $temp[2]; if ($referer=="") {$referer = $_SERVER['HTTP_REFERER']; list($remove,$stuff)=split('//',$referer,2); list($home,$stuff)=split('/',$stuff,2); $referer = $home; } for ($x=0; $x < count($referers); $x++) { if (eregi ($referers[$x], $referer)) { $found = true; } } if ($referer =="") $found = false; if (!$found){ print_error("Le formulaire que vous avez rempli se trouve sur un site Web non-autorisé."); error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0); } return $found; } else { return true; // not a good idea, if empty, it will allow it. }}if ($referers) check_referer($referers);if ($banlist) check_banlist($banlist, $email);// This function takes the sorts, excludes certain keys and // makes a pretty content string.function parse_form($array, $sort = "") { // build reserved keyword array $reserved_keys[] = "MAX_FILE_SIZE"; $reserved_keys[] = "required"; $reserved_keys[] = "redirect"; $reserved_keys[] = "require"; $reserved_keys[] = "path_to_file";// $reserved_keys[] = "recipient"; $reserved_keys[] = "subject"; $reserved_keys[] = "sort"; $reserved_keys[] = "style_sheet"; $reserved_keys[] = "bgcolor"; $reserved_keys[] = "text_color"; $reserved_keys[] = "link_color"; $reserved_keys[] = "vlink_color"; $reserved_keys[] = "alink_color"; $reserved_keys[] = "title"; $reserved_keys[] = "missing_fields_redirect"; $reserved_keys[] = "env_report"; $reserved_keys[] = "submit"; if (count($array)) { if (is_array($sort)) { foreach ($sort as $field) { $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1; if ($reserved_violation != 1) { if (is_array($array[$field])) { for ($z=0;$z<count($array[$field]);$z++) $content .= $field.SEPARATOR.$array[$field][$z].NEWLINE; } else $content .= $field.SEPARATOR.$array[$field].NEWLINE; } } } while (list($key, $val) = each($array)) { $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) if ($key == $reserved_keys[$ri]) $reserved_violation = 1; for ($ri=0; $ri<count($sort); $ri++) if ($key == $sort[$ri]) $reserved_violation = 1; // prepare content if ($reserved_violation != 1) { if (is_array($val)) { for ($z=0;$z<count($val);$z++) $content .= $key.SEPARATOR.$val[$z].NEWLINE; } else $content .= $key.SEPARATOR.$val.NEWLINE; } } } return $content;}// mail the content we figure out in the following stepsfunction mail_it($content, $subject, $email, $recipient) { global $attachment_chunk, $attachment_name, $attachment_type, $attachment_sent, $bcc;// $ob = "----=_OuterBoundary_000";// $ib = "----=_InnerBoundery_001"; // $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: ".$email."\n"; // $headers .= "To: ".$recipient."\n"; $headers .= "Reply-To: ".$email."\n";// if ($bcc) $headers .= "Bcc: ".$bcc."\n"; // $headers .= "X-Priority: 1\n"; // $headers .= "X-Mailer: DT Formmail".VERSION."\n"; // $headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".//$ob."\"\n"; // $message = "This is a multi-part message in MIME format.\n";// $message .= "\n--".$ob."\n";// $message .= "Content-Type: multipart/alternative;\n\tboundary=\"".// $ib."\"\n\n";// $message .= "\n--".$ib."\n";// $message .= "Content-Type: text/plain;\n\tcharset=\"utf-8\"\n";// $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= $content."\n\n";// $message .= "\n--".$ib."--\n";// if ($attachment_name && !$attachment_sent) {// $message .= "\n--".$ob."\n";// $message .= "Content-Type: $attachment_type;\n\tname=\"".// $attachment_name."\"\n";// $message .= "Content-Transfer-Encoding: base64\n";// $message .= "Content-Disposition: attachment;\n\tfilename=\"".// $attachment_name."\"\n\n";// $message .= $attachment_chunk;// $message .= "\n\n";// $attachment_sent = 1;// } $message .= "\n--".$ob."--\n"; mail($recipient, $subject, $message, $headers);}// take in the body building arguments and build the body tag for page display//function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {// if ($style_sheet)// echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";// if ($title)// echo "<title>$title</title>\n";// if (!$bgcolor)// $bgcolor = "#FFFFFF";// if (!$text_color)// $text_color = "#000000";// if (!$link_color)// $link_color = "#0000FF";// if (!$vlink_color)// $vlink_color = "#FF0000";// if (!$alink_color)// $alink_color = "#000088";// if ($background)// $background = "background=\"$background\"";// echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";//}// check for a recipient email address and check the validity of it// Thanks to Bradley miller (bradmiller@accesszone.com) for pointing// out the need for multiple recipient checking and providing the code.//$recipient_in = split(',',$recipient);//for ($i=0;$i<count($recipient_in);$i++) {// $recipient_to_test = trim($recipient_in[$i]);// if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,6}$", $recipient_to_test)) {// print_error("Votre adresse email n'est pas valide.");// }//}// This is because I originally had it require but too many people// were used to Matt's Formmail.pl which used required instead.if ($required) $require = $required;// handle the required fieldsif ($require) { // seperate at the commas $require = ereg_replace( " +", "", $require); $required = split(",",$require); for ($i=0;$i<count($required);$i++) { $string = trim($required[$i]); // check if they exsist if((!(${$string})) || (!(${$string}))) { // if the missing_fields_redirect option is on: redirect them if ($missing_fields_redirect) { header ("Location: $missing_fields_redirect"); exit; } $require; $missing_field_list .= "<li>Ce champ requis est vide: <span class=\"missing\">$required[$i]</span></li>\n"; } } // send error to our mighty error function if ($missing_field_list) print_error($missing_field_list,"missing");}// check the email fields for validityif (($email) || ($EMAIL)) { $email = trim($email); if ($EMAIL) $email = trim($EMAIL); if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $email)) print_error("Veuillez entrer une adresse email valide."); $EMAIL = $email;}// check zipcodes for validityif (($ZIP_CODE) || ($zip_code)) { $zip_code = trim($zip_code); if ($ZIP_CODE) $zip_code = trim($ZIP_CODE); if (!ereg("(^[0-9]{5})-([0-9]{4}$)", trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$", trim($zip_code))) && (!ereg("(^[0-9]{5})", trim($zip_code)))) print_error("Votre code postal n'est pas valide.");}// check phone for validityif (($PHONE_NO) || ($phone_no)) { $phone_no = trim($phone_no); if ($PHONE_NO) $phone_no = trim($PHONE_NO); if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $phone_no)) print_error("Votre numéro de téléphone n'est pas valide.");}// check phone for validityif (($FAX_NO) || ($fax_no)) { $fax_no = trim($fax_no); if ($FAX_NO) $fax_no = trim($FAX_NO); if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $fax_no)) print_error("Votre numéro de télécopieur n'est pas valide.");}// sort alphabetic or prepare an orderif ($sort == "alphabetic") { uksort($HTTP_POST_VARS, "strnatcasecmp");} elseif ((ereg('^order:.*,.*', $sort)) && ($list = explode(',', ereg_replace('^order:', '', $sort)))) { $sort = $list;} // prepare the content$content = parse_form($HTTP_POST_VARS, $sort);// check for an attachment if there is a file upload itif ($attachment_name) { if ($attachment_size > 0) { if (!$attachment_type) $attachment_type = "application/unknown"; $content .= "Attached File: ".$attachment_name."\n"; $fp = fopen($attachment, "r"); $attachment_chunk = fread($fp, filesize($attachment)); $attachment_chunk = base64_encode($attachment_chunk); $attachment_chunk = chunk_split($attachment_chunk); }}// check for a file if there is a file upload itif ($file_name) { if ($file_size > 0) { if (!ereg("/$", $path_to_file)) $path_to_file = $path_to_file."/"; $location = $path_to_file.$file_name; if (file_exists($path_to_file.$file_name)) $location = $path_to_file.rand(1000,3000).".".$file_name; copy($file,$location); unlink($file); $content .= "Fichier transféré: ".$location."\n"; }}// second file (see manual for instructions on how to add more.)if ($file2_name) { if ($file_size > 0) { if (!ereg("/$", $path_to_file)) $path_to_file = $path_to_file."/"; $location = $path_to_file.$file2_name; if (file_exists($path_to_file.$file2_name)) $location = $path_to_file.rand(1000,3000).".".$file2_name; copy($file2,$location); unlink($file2); $content .= "Fichier transféré: ".$location."\n"; }}// if the env_report option is on: get eviromental variablesif ($env_report) { $env_report = ereg_replace( " +", "", $env_report); $env_reports = split(",",$env_report); $content .= "\n------ eviromental variables ------\n"; for ($i=0;$i<count($env_reports);$i++) { $string = trim($env_reports[$i]); if ($env_reports[$i] == "REMOTE_HOST") $content .= "REMOTE HOST: ".$REMOTE_HOST."\n"; if ($env_reports[$i] == "REMOTE_USER") $content .= "REMOTE USER: ". $REMOTE_USER."\n"; if ($env_reports[$i] == "REMOTE_ADDR") $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n"; if ($env_reports[$i] == "HTTP_USER_AGENT") $content .= "BROWSER: ". $HTTP_USER_AGENT."\n"; }}// send it offmail_it(stripslashes($content), ($subject)?stripslashes($subject):"Form Submission", $email, $recipient);//if (file_exists($ar_file)) {// $fd = fopen($ar_file, "rb");// $ar_message = fread($fd, filesize($ar_file));// fclose($fd);// mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Form Submission", ($ar_from)?$ar_from:$recipient, $email);//}// if the redirect option is set: redirect themif ($redirect) { header("Location: $redirect"); exit;} else { echo "Merci de votre envoi.\n"; exit;}// <---------- THE END ----------> // Thank you all for your help ! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.