Page 1 sur 1

Probleme lors de verif champs vide formulaire

Posté : 05 juil. 2007, 14:28
par Chile
Suite à ce sujet :

http://www.phpfrance.com/forums/voir_sujet-31173.php
Les robots ont une grosse tendance à remplir les textarea sans faire attention au CSS, du coup si quelqu'un entre du texte dans le textarea "message" on sait qu'il s'agit d'un robot.
J'ai donc adopté cette technique pour lutter contre les spams. Je fais une verif dsur plusieurs champs s'ils restent vide, et surtout verifier le champs invisible 'display:none' si lui est remplit.
J'ai controlé manuelement la fontion (pour les champs visibles)

Ca ne m'a pas empeché de recevoir un spam une heure apres :cry: J'ai utilisé comme langage de verif javascript. Est-ce la raison pour laquelle le robot est passé a travers ? Dois je faire une verif en php ?

detail important, lors du spam, le champ 'message' etait vide, alors que je fais une verif dessus.

je pose mes codes, peut-etre me suis planté qlq part !

Verification entre les head

Code : Tout sélectionner

<SCRIPT language=Javascript type=text/javascript> <!-- function verification() { if(document.formlo.email.value.indexOf('@') == -1) { alert("Entrez un email svp"); document.formlo.email.focus(); return false; } else if(document.formlo.rob.value == "") { alert("Entrez un message svp"); document.formlo.rob.focus(); return false; } else if(document.formlo.message.value != "") { alert("Méchant robot"); document.formlo.message.focus(); return false; } return true } //--> </SCRIPT>
formulaire

Code : Tout sélectionner

<form action="replivredor.php" method="post" name="formlo" id="formlo" onSubmit="return verification()"> <table width="90%" border="1" cellspacing="0" bordercolor="#993300"> <tr> <td><div align="center"> <table width="70%" border="0" cellspacing="0"> <tr> <td colspan="2"><div align="center" class="corps_text_moyen"> <div align="left"><strong>VOS COORDONN&Eacute;ES </strong></div> </div></td> </tr> <tr class="corps_text_moyen"> <td width="50%" height="83" valign="top"><p align="left"><font size="2" face="Arial, Helvetica, sans-serif">Nom <br> <input name="nom" type="text" id="nom2" size="15"> <br> Pays<br> <input name="pays" type="text" id="pays" size="15"> <br> <br> </font></p></td> <td width="50%" valign="top"><p align="left"><font size="2" face="Arial, Helvetica, sans-serif">E-mail<br> <input name="email" type="text" id="email" size="15"> <br> Ville<br> <input name="ville" type="text" id="ville" size="15"> <br> <br> </font></p></td> </tr> <tr> <td colspan="2"><div align="center" class="corps_text_moyen"> <div align="center"><strong><font face="Arial, Helvetica, sans-serif">VOTRE MESSAGE </font></strong></div> </div> <div align="left"></div></td> </tr> <tr> <td colspan="2"><div align="center"><strong><font color="#000099" size="2" face="Arial, Helvetica, sans-serif"> <textarea name="rob" id="rob" rows="3" cols="50"></textarea> </font></strong><font size="2" face="Arial, Helvetica, sans-serif"><strong> </strong></font></div></td> </tr> <tr> <td height="20" colspan="2"><div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><strong><font color="#000099" size="2" face="Arial, Helvetica, sans-serif"> <textarea name="message2" id="message2" rows="3" cols="50" style="display:none"></textarea> </font> </strong></font></div></td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Envoyer"> </div></td> </tr> </table> </div></td> </tr> </table> </form>

Posté : 05 juil. 2007, 15:02
par @rthur
Bonjour,

La grande majorité des robots ne gèrent pas le javascript donc vont passer outre ta protection.
Il faut que tu fasses ta vérification en PHP :)

Posté : 05 juil. 2007, 16:03
par Chile
merci,
je viens de mettre en place un petit code en php...
y a plus qu'a patienter pour voir :)

Posté : 05 juil. 2007, 16:06
par Sékiltoyai
On ne le dira jamais assez, une vérification en javascript ne sert à rien d'autre qu'à l'ergonomie d'une application. Une vraie vérification de sécurité ou d'intégrité on la fait en PHP.