par
wurm1 » 03 oct. 2014, 09:55
Bonjour à tous.
Depuis quelques jours je reçois des spams à gogo par des robots spammeurs. J'aimerais éviter cela sans avoir besoin de mettre en place un captcha. J'ai lu sur divers articles sur le web qu'il est possible de mettre en place un champ texte supplémentaire, de le rendre invisible avec du CSS, et surtout, de le faire analyser, grâce au PHP, avant l'envoi final. Si ce champ reste vide, on estime qu'on a pas à faire à un bot, et on valide définitivement l'envoi. Si, au contraire, ce champ texte contient quelque chose, l'envoi n'est alors pas pris en compte.
Est-ce possible ?
Si oui, comment ?
P.S: je suis novice en php.
Voici l'index de ma page:
<!-------------- PHP FORMULAIRE --------------->
<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']) and isset($_POST['name']))
{
$destinataire = ***@***.fr';
$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 = 'Flash Instal: '.stripslashes($_POST['sujet']);
$name = stripslashes($_POST['name']);
$message = "$name vous contacte via le formulaire ****.\n\n\n Message : \n\n" .stripslashes($_POST['message']);
$headers = "From: <".$email.">\n";
$headers .= "Reply-To: ".$email."\n";
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
if(mail($destinataire,$sujet,$message,$headers))
{
echo "<script>alert(\"Votre message a bien été envoyé. Nous répondrons à votre demande dans les plus brefs délais.\")</script>
<form id=\"start\" action=\"\" method=\"post\">
<h1 id=\"form\">Contactez **** !</h1>
<table width=\"700\" border=\"0\">
<tr>
<td> <p><label for=\"name\">Votre Nom</label>
<input id=\"name\" type=\"text\" name=\"name\" />
</p>
<p>
<label for=\"email\">Votre Email</label>
<input id=\"email\" type=\"text\" name=\"email\" />
</p>
<p>
<label for=\"sujet\">Sujet du message</label>
<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
</p>
</td>
<td>
<p id=\"mess\">Votre Message <br />
<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
</p>
<p>
<input type=\"submit\" value=\"Envoyer\" />
</p>
</td>
</tr>
</table>
</form>";
}
else
{
echo "<script>alert(\"Une erreur c'est produite lors de l'envoi du message.\")</script>
<form id=\"start\" action=\"\" method=\"post\">
<h1 id=\"form\">*** !</h1>
<table width=\"700\" border=\"0\">
<tr>
<td> <p><label for=\"name\">Votre Nom</label>
<input id=\"name\" type=\"text\" name=\"name\" />
</p>
<p>
<label for=\"email\">Votre Email</label>
<input id=\"email\" type=\"text\" name=\"email\" />
</p>
<p>
<label for=\"sujet\">Sujet du message</label>
<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
</p>
</td>
<td>
<p id=\"mess\">Votre Message <br />
<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
</p>
<p>
<input type=\"submit\" value=\"Envoyer\" />
</p>
</td>
</tr>
</table>
</form>";
}
}
else
{
echo "<script>alert(\"Le formulaire est incomplet.\")</script>
<form id=\"start\" action=\"\" method=\"post\">
<h1 id=\"form\">**** !</h1>
<table width=\"700\" border=\"0\">
<tr>
<td> <p><label for=\"name\">Votre Nom</label>
<input id=\"name\" type=\"text\" name=\"name\" />
</p>
<p>
<label for=\"email\">Votre Email</label>
<input id=\"email\" type=\"text\" name=\"email\" />
</p>
<p>
<label for=\"sujet\">Sujet du message</label>
<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
</p>
</td>
<td>
<p id=\"mess\">Votre Message <br />
<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
</p>
<p>
<input type=\"submit\" value=\"Envoyer\" />
</p>
</td>
</tr>
</table>
</form>";
}
}
else
{
?>
<!----------------------------------------------->
<!---------------- FORMULAIRE ----------------->
<form id="start" action="" method="post">
<a name="contact" style="color:#fff;"></a><h1 id="form">Contactez rapidement **** ! ♦ <a href="contact.php" style="color:#dce7d6;"><strong>Plus d'infos, coordonnées, rayon d'action... sur la page Contact</strong></a></h1>
<table width="700" border="0">
<tr>
<td> <p><label for="name">Votre Nom</label>
<input id="name" type="text" name="name" />
</p>
<p>
<label for="email">Votre Email</label>
<input id="email" type="text" name="email" />
</p>
<p>
<label for="sujet">Sujet du message</label>
<input id="sujet" type="text" name="sujet" />
</p>
</td>
<td>
<p id="mess">Votre Message <br />
<textarea name="message" cols="25" rows="5" id="textarea">***.</textarea><br />
</p>
<p>
<input type="submit" value="Envoyer" />
</p>
</td>
</tr>
</table>
</form>
<?php
}
?>
</li>
<!----------------------------------------------->
Merci d'avance.
Bonjour à tous.
Depuis quelques jours je reçois des spams à gogo par des robots spammeurs. J'aimerais éviter cela sans avoir besoin de mettre en place un captcha. J'ai lu sur divers articles sur le web qu'il est possible de mettre en place un champ texte supplémentaire, de le rendre invisible avec du CSS, et surtout, de le faire analyser, grâce au PHP, avant l'envoi final. Si ce champ reste vide, on estime qu'on a pas à faire à un bot, et on valide définitivement l'envoi. Si, au contraire, ce champ texte contient quelque chose, l'envoi n'est alors pas pris en compte.
Est-ce possible ?
Si oui, comment ?
P.S: je suis novice en php.
Voici l'index de ma page:
[php]<!-------------- PHP FORMULAIRE --------------->
<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']) and isset($_POST['name']))
{
$destinataire = ***@***.fr';
$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 = 'Flash Instal: '.stripslashes($_POST['sujet']);
$name = stripslashes($_POST['name']);
$message = "$name vous contacte via le formulaire ****.\n\n\n Message : \n\n" .stripslashes($_POST['message']);
$headers = "From: <".$email.">\n";
$headers .= "Reply-To: ".$email."\n";
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
if(mail($destinataire,$sujet,$message,$headers))
{
echo "<script>alert(\"Votre message a bien été envoyé. Nous répondrons à votre demande dans les plus brefs délais.\")</script>
<form id=\"start\" action=\"\" method=\"post\">
<h1 id=\"form\">Contactez **** !</h1>
<table width=\"700\" border=\"0\">
<tr>
<td> <p><label for=\"name\">Votre Nom</label>
<input id=\"name\" type=\"text\" name=\"name\" />
</p>
<p>
<label for=\"email\">Votre Email</label>
<input id=\"email\" type=\"text\" name=\"email\" />
</p>
<p>
<label for=\"sujet\">Sujet du message</label>
<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
</p>
</td>
<td>
<p id=\"mess\">Votre Message <br />
<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
</p>
<p>
<input type=\"submit\" value=\"Envoyer\" />
</p>
</td>
</tr>
</table>
</form>";
}
else
{
echo "<script>alert(\"Une erreur c'est produite lors de l'envoi du message.\")</script>
<form id=\"start\" action=\"\" method=\"post\">
<h1 id=\"form\">*** !</h1>
<table width=\"700\" border=\"0\">
<tr>
<td> <p><label for=\"name\">Votre Nom</label>
<input id=\"name\" type=\"text\" name=\"name\" />
</p>
<p>
<label for=\"email\">Votre Email</label>
<input id=\"email\" type=\"text\" name=\"email\" />
</p>
<p>
<label for=\"sujet\">Sujet du message</label>
<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
</p>
</td>
<td>
<p id=\"mess\">Votre Message <br />
<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
</p>
<p>
<input type=\"submit\" value=\"Envoyer\" />
</p>
</td>
</tr>
</table>
</form>";
}
}
else
{
echo "<script>alert(\"Le formulaire est incomplet.\")</script>
<form id=\"start\" action=\"\" method=\"post\">
<h1 id=\"form\">**** !</h1>
<table width=\"700\" border=\"0\">
<tr>
<td> <p><label for=\"name\">Votre Nom</label>
<input id=\"name\" type=\"text\" name=\"name\" />
</p>
<p>
<label for=\"email\">Votre Email</label>
<input id=\"email\" type=\"text\" name=\"email\" />
</p>
<p>
<label for=\"sujet\">Sujet du message</label>
<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
</p>
</td>
<td>
<p id=\"mess\">Votre Message <br />
<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
</p>
<p>
<input type=\"submit\" value=\"Envoyer\" />
</p>
</td>
</tr>
</table>
</form>";
}
}
else
{
?>
<!----------------------------------------------->
<!---------------- FORMULAIRE ----------------->
<form id="start" action="" method="post">
<a name="contact" style="color:#fff;"></a><h1 id="form">Contactez rapidement **** ! ♦ <a href="contact.php" style="color:#dce7d6;"><strong>Plus d'infos, coordonnées, rayon d'action... sur la page Contact</strong></a></h1>
<table width="700" border="0">
<tr>
<td> <p><label for="name">Votre Nom</label>
<input id="name" type="text" name="name" />
</p>
<p>
<label for="email">Votre Email</label>
<input id="email" type="text" name="email" />
</p>
<p>
<label for="sujet">Sujet du message</label>
<input id="sujet" type="text" name="sujet" />
</p>
</td>
<td>
<p id="mess">Votre Message <br />
<textarea name="message" cols="25" rows="5" id="textarea">***.</textarea><br />
</p>
<p>
<input type="submit" value="Envoyer" />
</p>
</td>
</tr>
</table>
</form>
<?php
}
?>
</li>
<!----------------------------------------------->[/php]
Merci d'avance.