Créer un Anti-Spam pour formulaire contact PHP

[Fermé]
Signaler
Messages postés
155
Date d'inscription
jeudi 27 juin 2013
Statut
Membre
Dernière intervention
28 août 2014
-
Messages postés
1
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
25 mai 2015
-
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

2 réponses

Messages postés
155
Date d'inscription
jeudi 27 juin 2013
Statut
Membre
Dernière intervention
28 août 2014
9
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
6650
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 310
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+
Messages postés
1
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
25 mai 2015
>
Messages postés
6650
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015

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 :)
Messages postés
155
Date d'inscription
jeudi 27 juin 2013
Statut
Membre
Dernière intervention
28 août 2014
9
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...)...
Messages postés
17998
Date d'inscription
dimanche 29 octobre 2006
Statut
Contributeur
Dernière intervention
7 juin 2020
3 268