$array){
if ($i == $answer){
return $array;
break;
};
};
}; // Fin if ($mode != 'ans')
};
/*
*****************************
FIN DE LA CONFIGURATION
*****************************
*/
// on tire au sort une question
$nospam = NoSpamQuestion();
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text){
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc()){
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email){
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~][email protected](?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$antispam_h = (isset($_POST['antispam_h'])) ? Rec($_POST['antispam_h']) : '';
$antispam_r = (isset($_POST['antispam_r'])) ? Rec($_POST['antispam_r']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
if (isset($_POST['envoi'])){
// On demande la vraie réponse
$verif_nospam = NoSpamQuestion('ans', $antispam_r);
if (strtolower($antispam_h) != strtolower($verif_nospam['answer'])){
// le formulaire s'arrête ici
echo 'Vous n\'avez pas répondu correctement à la question Antispam ...
';
}
else{
if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')){
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
'Content-Disposition: inline'. "\r\n" .
'Content-Transfer-Encoding: 7bit'." \r\n" .
'X-Mailer:PHP/'.phpversion();
// envoyer une copie au visiteur ?
if ($copie == 'oui'){
$cible = $destinataire.';'.$email;
}
else{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('
','',$message);
$message = str_replace('
','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
// Envoi du mail
$num_emails = 0;
$tmp = explode(';', $cible);
foreach($tmp as $email_destinataire){
if (mail($email_destinataire, $objet, $message, $headers))
$num_emails++;
}
if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1))){
echo ''.$message_envoye.'
';
echo 'Une copie vous a été envoyé
';
echo 'Retourner sur le site';
}
else{
echo ''.$message_non_envoye.'
';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo ''.$message_formulaire_invalide.'
';
$err_formulaire = true;
};
};
}; // fin du if (!isset($_POST['envoi']))
if (($err_formulaire) || (!isset($_POST['envoi']))){
// afficher le formulaire
echo '
';
};
echo '
';
?>