Créer un Anti-Spam pour formulaire contact PHP

blaz32 Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   -  
Solu-Web.quebec Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   10
 
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 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
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   Statut Membre Dernière intervention   > mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   10
 
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 18033 Date d'inscription   Statut Contributeur Dernière intervention   3 297
 
0