Créer un Anti-Spam pour formulaire contact PHP

Fermé
blaz32 Messages postés 155 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 août 2014 - 24 nov. 2013 à 21:27
Solu-Web.quebec Messages postés 1 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 25 mai 2015 - 25 mai 2015 à 06:25
Bonjour, j'ai crée mon formulaire de contact avec un "anti-spam" (si on peut appeler cela un aniti-spam)...
Il s'agit d'un input avec le css display:none; et le code php :

if(empty($champ_invisible))
{

// Je continu mon code...

}else echo '<div id="error_msg">Désolé, le message n'a pas pu être envoyé</div>';

Est-ce suffisant ou faut-il faire autrement ?
Si oui, comment ?

Merci de vos réponses
A voir également:

2 réponses

blaz32 Messages postés 155 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 août 2014 10
24 nov. 2013 à 21:37
Oui le captcha, je connais et j'ai déjà fais ce système mais, je ne veux pas que l'utilisateur soit obligé de remplir un champs supplémentaire...

Après ? je ne sais pas si j'ai raison ou tort... ?

Mais sa semble logique, car un ordinateur générant le code va remplir tous les champs, et mon code dit "si ce truc là est vide, alors on continue, mais si il est rempli, j'affiche mon message d'erreur"...

Je veux des avis : Piège ou captcha ?
1
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
24 nov. 2013 à 22:20
Bonsoir,

J'ai également traité ce sujet ici:
https://html5.immo-scope.com/article/general_filtrerLesRobotsSpammeurs

Mais pas efficace à 100%

L'idéal est de faire croire que le message est envoyé. Il faut que pour le robot spammeur il ait l'illusion que son envoi s'est bien passé. Donc, même message pour tout le monde. La différence: pour le robot spammeur, on n'envoye pas le mail.

A+
0
Solu-Web.quebec Messages postés 1 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 25 mai 2015 > mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015
25 mai 2015 à 06:25
Je suis allé voir ton tuto et je voudrait utiliser la parade de l'âge. Mais voilà. bien que je comprenne le principe, je suis un peu perdu dans l'insertion du code au bon endroit dans mon formulaire.

J'utilise le script php de grafik-power dont voici le code où j'y ai insérer le champ "age":

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="css main" href="styles/style-main.css" />
<link rel='stylesheet'href='style.css' />
<script type='text/javascript' src='js/jquery-1.3.2.min.js'></script>
<script type='text/javascript' src='js/form_c.js'></script>
</head>
<title>Contactez nous</title>
</head>

<body>
<?php include("banniere.php"); ?>

<?php include("menu-h.php"); ?>

<?php include("menu-gauche.php"); ?>

.monAge {
display: none;
}

<div id="corps">

<div id='formulaire'>
<form action='send.php' method='post' id='contact_form'>
<h2><img id='contact_logo' src='images/mail.png' /> Formulaire de contact</h2><em>Réalisé et proposé par <a href="http://www.grafik-power.com/" title="GrafikPower.com">GrafikPower.com</a></em>

<p>
<div>

<label for="age" class="monAge">Votre age:
<input type="text" name="age" id="age"></label>

</div>
<div></div>
</p>

<p> Votre nom :
<div id='name_error' class='error'><img src='images/error.png'> veuillez entrer votre nom !!</div>
<div>
<input type='text' name='name' id='name'>
</div>
</p>
<p> Votre Email :
<div id='email_error' class='error'><img src='images/error.png'> veuillez entrer votre e-mail !!</div>
<div>
<input type='text' name='email' id='email'>
</div>
</p>
<p> Votre sujet :
<div id='subject_error' class='error'><img src='images/error.png'> veuillez préciser votre sujet !!</div>
<div>
<input type='text' name='subject' id='subject'>
</div>
</p>
<p> Votre message :
<div id='message_error' class='error'><img src='images/error.png'> Champs message est requis !!</div>
<div>
<textarea name='message' id='message'></textarea>
</div>
</p>
<div id='mail_success' class='success'><img src='images/success.png'> Merci ! Votre message a bien été envoyé !!</div>
<div id='mail_fail' class='error'><img src='images/error.png'> votre message n'a pas été envoyé, réessayer plus tard !!</div>
<p id='cf_submit_p'>
<input type='submit' id='send_message' value='Envoyer votre message'>
</p>
</form>
<br />
</div>


</div>

<?php include("pied.php"); ?>

</body>
</html>

Le champ "age" est-il à la bonne place?

aussi le code : " .monAge {
display: none;
} " je le met dans mon fichier style.css ?

Et ce bout de code : "// test si age est vide
if (empty($_POST['age']])) {
// ...ici partie de code qui envoie le message
}
?>
...ici message HTML qui confirme envoi message OK..." je ne sais vraiment pas ou l'insérer pour que ça fonctionne.

Bref j'suis un peu nul dans cette situation....

Merci beaucoup pour l'aide qui viendra, j'en suis convaincu :)
0
blaz32 Messages postés 155 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 août 2014 10
Modifié par blaz32 le 24/11/2013 à 22:30
Mais le robot ne sait pas lire les lettres et les caractères spéciaux, donc il se fiche un petit peu du résultat, non ?

Après, je ne pense pas que les robots puisse faire des injections SQL si le champs est protégé (htmlspecialchars/htmlentites ou mysql_escape_string etc...)...
0
Aranud87 Messages postés 18031 Date d'inscription dimanche 29 octobre 2006 Statut Contributeur Dernière intervention 7 juin 2020 3 293
24 nov. 2013 à 21:29
0