J'essaie d'adapter un formulaire php pris sur le net, je souhaiterai que les messages d'erreur ou d'envoi soit insérer sous le message au lieu d'apparaitre sur une nouvelle page, après plusieurs tentatives je bloque
Sans passer par un catcha, quels sont les possibilités de protéger au mieux ce formulaire ?
Merci de me donner un p'tit coup de main ou quelques pistes.
Bon dimache
BB
Code : Tout sélectionner
<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']))
{
$destinataire = '[email protected]';
$email = htmlentities($_POST['email']);
if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
{
$sujet = 'Contact: '.stripslashes($_POST['sujet']);
$message = stripslashes($_POST['message']);
$headers = "From: <".$email.">\n";
$headers .= "Reply-To: ".$email."\n";
$headers .= "Content-Type: text/plain; charset=\"utf-8\"";
if(mail($destinataire,$sujet,$message,$headers))
{
echo "<strong>Votre message a bien été envoyé.</strong>";
}
else
{
echo "<strong style=\"color:#ff0000;\">Une erreur c'est produite lors de l'envois du message.</strong>";
}
}
else
{
echo "<strong style=\"color:#ff0000;\">L'email que vous avez entré est invalide.</strong>";
}
}
else
{
?>
<form action="" method="post">
<fieldset>
<legend>Formulaire de contact</legend>
<label for="email" style="display:inline-block;width:100px;"><strong>Votre Email:</strong></label> <input type="text" name="email" id="email" /><br />
<label for="sujet" style="display:inline-block;width:100px;"><strong>Sujet:</strong></label> <input type="text" name="sujet" id="sujet" /><br />
<label for="message"><strong>Message:</strong></label><br />
<textarea cols="70" rows="4" name="message" id="message"></textarea><br />
<input type="submit" value="Envoyer" />
</fieldset>
<?php
}
?>
</form>