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 -
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
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:
- Php antispam
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Antispam gmail - Accueil - Mail
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
2 réponses
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 ?
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 ?
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+
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 :)
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...)...