Bonjour
j'ai un formulaire que j'aurais voulu sécuriser avec un mot a taper antispam et je ne c'est pas quoi mettre dans le code pour qu'il reconnaisse le mot antispam, ca fait plusieurs heures que je trifouille le code mais sans résultat, en plus j'aurais voulu mettre des stripslashes et htmlspecialchars.
Si une bonne âme pouvait me mettre dans le code ce qu'il faut pour le mot antispam et les stripslashes, htmlspecialchars et m'expliquer car la je seche !
Merci d'avance, ca pourra servir d'exemple de mail pour quelqu'un d'autre.
j'ai un formulaire que j'aurais voulu sécuriser avec un mot a taper antispam et je ne c'est pas quoi mettre dans le code pour qu'il reconnaisse le mot antispam, ca fait plusieurs heures que je trifouille le code mais sans résultat, en plus j'aurais voulu mettre des stripslashes et htmlspecialchars.
Si une bonne âme pouvait me mettre dans le code ce qu'il faut pour le mot antispam et les stripslashes, htmlspecialchars et m'expliquer car la je seche !
Code:
<?
/* configuration du script d'envoi */
$nom_du_site = "monsite" ; // utilisé lors de l'envoi de la copie du message
$to = "monmail" ; // obligatoire : email du destinataire - contact du site
$copie_a_expediteur = 0 ; // mettre 1 si on veut envoyer une copie du message à l'expéditeur / visiteur du site
$copie_au_webmaster = 1 ; // mettre 1 si on veut faire un Cc au webmaster du site - souvent utile pour débugger au départ ou si on veut être au courant des messages qui transitent via le site
$mail_webmaster = "monmail" ; // mettre adresse du webmaster pour envoi du Cc
/* fin de la config */
// tests de sécurité si le formulaire a été envoyé
if (isset($_POST["send"]) ){
$secure = true ;
$from = $_POST["from"] ;
$sujet=mb_encode_mimeheader($_POST["sujet"]) ;
$antispam = $_POST["antispam"] ;
//tests des adresses mail expéditeur, destinataire et webmaster
if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$from)) {
echo('Adresse de courriel Invalide <br />') ;
$secure = false ;
}
if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$mail_webmaster)) {
echo('Adresse de courriel Invalide <br />');
$secure = false ;
}
if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$to)) {
echo('Adresse de courriel Invalide <br />');
$secure = false ;
}
}
if ($antispam == 'antispam')
{
// test des saisies obligatoires
if ( !$from ||!$sujet ||!$antispam ||!$txtmsg ) {
echo('Mail + sujet + \'antispam\' et message obligatoires <br />');
$secure = false ;
}
}
if ( !$secure ){
// Si le formulaire n'a pas été envoyé ou n'est pas secure, on l'affiche
?>
<form action="" method="post">
<p></p>
<fieldset>
<legend style="margin-bottom: 5px;">Envoyer un message (<strong>*</strong> champs obligatoires)</legend>
<p style="float: left;">
<label for="nom">Nom :</label>
<br />
<input id="nom" name="nom" type="text"
value="<? if ($_POST["nom"]) echo $_POST["nom"]?>" />
<br />
<label for="prenom">Prénom :</label>
<br />
<input id="prenom" name="prenom" type="text"
value="<? if ($_POST["prenom"]) echo $_POST["prenom"]?>" />
<br /><br />
<label for="from">Adresse de courriel<strong>*</strong> : </label>
<br />
<input id="from" name="from" type="text"
value="<? if ($_POST["from"]) echo $_POST["from"]?>" />
</p>
<br />
<label for="sujet">Sujet<strong>*</strong> :</label>
<br />
<input id="sujet" name="sujet" type="text"
value="<? if ($_POST["sujet"]) echo $_POST["sujet"]?>" />
<br />
<p><input type="text" value="Tapez ici le mot 'antispam'" size="35" name="antispam" onfocus="javascript:this.value=''" /></p>
<br />
<br />
<br />
<label for="txtmsg">Message :<strong>*</strong></label>
<br />
<textarea id="txtmsg" name="txtmsg" cols="30" rows="10"><?
if ($_POST["txtmsg"])
echo $_POST["txtmsg"] ;
else echo "Votre message..." ;
?></textarea>
<br /><br />
<input value="Envoyer" name="send" type="submit" />
</p>
</fieldset>
</form>
<?
}
else{
// Si c'est ok - secure et données
// on concatène le texte du message
$message = $_POST[txtmsg]."\n \nEnvoyé par : ".$_POST[nom]." ".$_POST[prenom]."\n" ;
// création du header du message
$headers = "From: ".$from."\n" ;
$headers.= "Reply-To: ".$from."\n" ;
$headers.= "X-Mailer: PHP/".phpversion()."\n" ;
// Cc au webmaster si choix activé
if ( $copie_au_webmaster == 1 ) {
$headers.= "Cc: $mail_webmaster\n" ;
}
// On envoi le mail :
if ( mail($to,$_POST["sujet"],stripslashes($message),$headers) ){
// Si le mail a bien été envoyé, message de confirmation
echo "Votre mail a bien été envoyé à $to.<br />";
}
else{
// sinon, message d'erreur.
echo "Votre mail n\'a pas pu être envoyé.<br />";
}
// envoi d'une copie à l'expéditeur si option choisie
if ( $copie_a_expediteur == 1 ) {
$message = "Copie du mail envoyé sur le site ".$nom_du_site."\n\n". $message ;
$headers = "From: ".$to."\n" ;
$headers.= "X-Mailer: PHP/".phpversion()."\n" ;
$sujet = "Copie de : ". $_POST["sujet"] ;
if ( mail($from,$sujet,stripslashes($message),$headers) ){
// Si le mail a bien été envoyé, message de confirmation
echo "Vous allez recevoir une copie du mail envoyé.<br />";
}
else{
// sinon, message d'erreur.
echo "Erreur lors de l'envoi de la copie.<br />";
}
}
}
?>
Merci d'avance, ca pourra servir d'exemple de mail pour quelqu'un d'autre.