Nous contacter

"; $returnPathMail = "erreur@ludimail.net"; $blacklist = array('content-type', 'a href'); $message = ''; $email = ''; $libelle_court = ''; $id = 0; if (isset($_POST['message'])) $message = stripslashes($_POST['message']); if (isset($_POST['email'])) $email = $_POST['email']; if (isset($_POST['libelle_court'])) $libelle_court = trim($_POST['libelle_court']); if (isset($_REQUEST['id'])) $id = $_REQUEST['id']; // Vérif id formulaire if ($id == 0) die("Identifiant du formulaire de contact inconnu"); if (! is_numeric($id)) die("Format paramètre id incorrect"); // Connexion à la base de données connect_db(); // Récupération libellés du formulaire $sql = "SELECT * FROM formulaires_libelle WHERE id=$id"; $req = mysql_query($sql); if (! ($array = mysql_fetch_array($req))) { die("Formulaire $id non trouvé"); } $libelle_long = $array['libelle_long']; $libelle_court_base = $array['libelle_court']; // Récupération destinataires du formulaire $email_dest = ''; $nb_dest = 0; $sql = "SELECT * FROM formulaires_adresses WHERE id=$id"; $req = mysql_query($sql); while ($array = mysql_fetch_array($req)) { $nb_dest++; if ($nb_dest > 1) $email_dest .= ','; $email_dest .= $array['adresse']; } if ($email_dest == '') die("Formulaire mal configuré : pas de destinataire défini"); // Vérification du mot anti-spam $erreur_antispam = 0; if ($message != '' && strcasecmp($libelle_court, $libelle_court_base) != 0) { $erreur_antispam = 1; echo("

Le mot anti-spam $libelle_court saisi n'est pas correct. Essayez à nouveau.

"); } // Vérification de la validité de l'adresse Email saisie if ($message != '' && (! checkEmailValidity($email))) { echo("

Vous devez entrer une adresse Email valide

"); if (strpos(strtolower($email), '@cinebourse.net')) echo("

Adresses Email en @cinebourse.net interdites.

"); $email = ''; } // Recherche de mots blacklistés foreach ($blacklist as $mot) { if (strpos(strtolower($message), $mot)) { echo("

Mot " . htmlentities($mot, ENT_QUOTES) . " interdit.

"); exit(); } } if ($message == '' || $email == '' || $erreur_antispam) { echo("

Vous souhaitez contacter $libelle_long.

Veuillez indiquer votre adresse Email et le mot anti-spam puis saisir votre message dans le formulaire.

"); echo("
\n"); echo("

Mon adresse Email où me répondre

"); echo("

Sécurité anti-spam. Veuillez recopier le mot suivant dans le champs de saisie ci-dessous : $libelle_court_base

"); echo("

Mon message

"); echo("

"); echo("
\n"); } elseif (checkEmailValidity($email)) { $message = "Adresse Email pour réponse : $email\n\n" . "Le message suivant a été envoyé :\n\n$message"; envoimail($email_dest, "[$libelle_long] Formulaire de contact", $message); echo("

Votre message a été envoyé à $libelle_long.

"); } disconnect_db(); function connect_db() { global $dbhost, $dblogin, $dbpassword, $dbname, $dbid, $db; $dbid = mysql_connect($dbhost, $dblogin, $dbpassword); $db = $dbid; //die("connexion base $dbhost, $dblogin, $dbpassword"); if ($dbid < 0) die("Accès impossible à la base de données. Réessayez ultérieurement."); if (mysql_select_db($dbname, $dbid) < 0) die("Impossible de sélectionner la base $req. Réessayez ultérieurement."); } function disconnect_db() { global $dbid; mysql_close($dbid); } function envoimail($email, $subject, $body, $bcc = 0) { global $nomail, $fromMail, $BCCMail, $returnPathMail; if ($nomail && $email != 'olivier@gangloff.cx') return; include_once('Mail.php'); include_once('Mail/mime.php'); $crlf = "\n"; // Remplissage des en-têtes $hdrs['From'] = $fromMail; $hdrs['Reply-To'] = $fromMail; $hdrs['Return-Path'] = $returnPathMail; $hdrs['Subject'] = $subject; // Remplissage destinataires et Bcc $destinataires = $email; $params = NULL; if ($bcc) { $params = array("Bcc: $BCCMail"); } // Codage MIME pour des accents bien gérés $mime = new Mail_mime($crlf); $mime->setTXTBody($body); //$mime->setHTMLBody($html); //$mime->addAttachment($file, 'text/plain'); $body = $mime->get(); $hdrs = $mime->headers($hdrs); // Envoi $mail = Mail::factory('mail', $params); $mail->send($destinataires, $hdrs, $body); } // Vérifie la validité d'une adresse Email function checkEmailValidity($email) { // Auteur : bobocop (arobase) bobocop (point) cz // Traduction des commentaires par mathieu // Code trouvé sur http://php.developpez.com/faq/?page=chaines#chaines_verifmail // Le code suivant est la version du 2 mai 2005 qui respecte les RFC 2822 et 1035 // http://www.faqs.org/rfcs/rfc2822.html // http://www.faqs.org/rfcs/rfc1035.html $atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // caractères autorisés avant l'arobase $domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine) $regex = '^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase '(\.' . $atom . '+)*' . // Suivis par zéro point ou plus // séparés par des caractères autorisés avant l'arobase '@' . // Suivis d'un arobase '(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine // séparés par des points $domain . '{2,63}$'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine // test de l'adresse e-mail if (eregi($regex, $email)) { return 1; } else { return 0; } } ?>