jour
voila j'aurais voulu savoir si mon code était securisé j'ai mis des htmlspecialchars mais je sais pas si ca suffit :
<?php
$destinataire = 'xxxxx@xxxxx.fr';
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
$message_erreur_formulaire = "Vous devez d'abord <a href=\"form.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
if (!isset($_POST['envoi']))
{
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$evenement = (isset($_POST['evenement'])) ? Rec($_POST['evenement']) : '';
$date = (isset($_POST['date'])) ? Rec($_POST['date']) : '';
$budget = (isset($_POST['budget'])) ? Rec($_POST['budget']) : '';
$adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : '';
$personnes = (isset($_POST['personnes'])) ? Rec($_POST['personnes']) : '';
$infos = (isset($_POST['infos'])) ? Rec($_POST['infos']) : '';
$message = "$budget\n\n$adresse\n\n$personnes\n\n$tel\n\n$date\n\n$infos";
$message = nl2br ($message);
$adresse = nl2br($adresse);
$infos = nl2br($infos);
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
if (($nom != '') && ($prenom != '') && ($email != '') && ($evenement != '') && ($date != '') && ($budget != '') && ($adresse != '') && ($personnes != '') )
{
$headers = 'From: '.$prenom.' '.$nom.' <'.$email.'>' . "\r\n";
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
$evenement = str_replace("'","'",$evenement);
if (mail($cible, $evenement, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
echo '<p>'.$message_formulaire_invalide.' <a href="form.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
merci