Les Forums > Informatique >Informatique Général >

Protéger vos formulaires du spam en PHP

Samedi 27 Janvier 2007 à 12h17
Protéger vos formulaires du spam en PHP
Vos réactions et commentaires au sujet du Tutorial Protéger vos formulaires du spam en PHP :
Mardi 20 Mars 2007 à 12h43
Super, je suis spamée sur mes livre d'or et je cherchais justement le moyen de mettre un petit truc de sécurité.
Juste une chose, je n'ai pas compris comment faire pour la base de données ?
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Mardi 20 Mars 2007 à 16h09
Oui, je viens de voir, tu as en effet quelques problèmes de spam..

La base de donnée tu n'en a pas forcément besoin, elle sert juste à stocker les messages...
Ils sont stockés sur une base de données tes messages ou pas ?

En résumé :
- tu génère un nombre aléatoire
- tu demande au visiteur d'effectuer une petite opération sur ce nombre
- t'envoie le nombre généré et la réponse du visiteur à ta page php chargé d'envoyer les messages dans la base de donnée
- tu regarde si le nombre envoyé par le visiteur correspond bien à l'opération que tu lui a demandé
-> si c'est le cas, alors on envoie le message dans la base de donnée avec toutes les autres infos, pseudos, date, etc...
-> sinon, on demande au visiteur de recommencer (dans le cas peu probable où il s'est trompé), et n'envoie pas les données dans la base de données...

Voilà, voilà

J'espère avoir été un peu plus clair... Complice
Mardi 20 Mars 2007 à 21h48
Oui mes messages sont stockés dans la base de données.
Ca fait déjà 2 fois que je change de dossier, demain je teste cette option, merci de ton aide et je te tiens au courant ;-)
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Mercredi 21 Mars 2007 à 14h31
Arf, ça marche pas :cry:
J'ai en fait 3 pages php pour mon livre d'or.
Une qui s'appelle "formulaire.php" une autre "ajoute.php" et une dernière "index.php"
Si j'ai bien suivi, il faut que le mette le code
Code:
Combien font <b><echo> +1 ? : </b>
< input type="hidden" name="lenombre" value="< ? echo $nombre; ?>">
dans formulaire

et le code :
Code:
$lenombre=$_POST['lenombre'];
$verif=$_POST['verif'];
if($pseudo=='' or $commentaire=='' or $verif!=$lenombre+1)
{
dans ajoute.php
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Mercredi 21 Mars 2007 à 14h38
Oups j'avais oublié de mettre la première ligne

Code:
$nombre=rand(10, 100);
que j'ai rajoutée dans le formulaire, je pense que c'est là que ça doit être :oops:

Mais j'ai ça sur ma page :


et quand je teste la validation d'un comm j'ai une erreur sur ma page ajouter :cry:

Je comprends rien (je dois avoir des résidus de blond :Rieur: )
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Mercredi 21 Mars 2007 à 18h16
Arf...non, tu n'est pas blonde...
Tu viens de me montrer qu'il y avait une coquille dans mon code Confus Confus
Il semblerait que j'ai un problème avec mes balises de codes...je vais essayer de réparer cela rapidement , donc cela donne ça :

Code:
<? $nombre=rand(10, 100); ?>
Combien font <b><? echo $nombre; ?> +1 ? : </b>
<input type="hidden" name="lenombre" value="< ? echo $nombre; ?>">
<input type="text" size="5" name="verif"><br/>
<input type="submit" value="Envoyer" name="commentaire" />


Edit : Je ne t'avais pas mis les inputs text et submit...l'article était normalement juste là pour montrer le principe de la démarche...
Jeudi 22 Mars 2007 à 17h54
J'ai fait un copier/coller de ton code et j'ai encore un soucis.

J'ai "Combien font +1 ?" dans le formulaire

Et quand je fais "envoyer" pour tester j'ai ce message :
Citation:
Parse error: syntax error, unexpected $end in /mnt/122/sdc/8/c/brycemondesvirtuels/commentaires/ajouter.php on line 78


Au secours :oops:
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Jeudi 22 Mars 2007 à 18h16
Euh...

Attention, j'ai modifié le code en effet, j'avais un problème avec les balises code, bref un truc qui ne marchait pas...

Le bon code c'est celui qui dans mon post précédent :
Code:
<? $nombre=rand(10, 100); ?>
Combien font <b><? echo $nombre;  //cela n'était pas dans le code original et devrait te permettre d'afficher autre chose que +1... ?> +1 ? : </b> 

//Avec cela en plus :
<input type="hidden" name="lenombre" value="< ? echo $nombre; ?>">
<input type="text" size="5" name="verif"><br/>
<input type="submit" value="Envoyer" name="commentaire" />


Avec les modifs en gras, si cela ne marche toujours pas, ben ya MSN... Complice parce que comme cela on ne fait pas trop avancer le schmliblick..
Jeudi 22 Mars 2007 à 20h13
Ok je vais regarder déjà et je te tiens au courant Complice
Merci de ton aide, suis un boulet :Rieur:
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Jeudi 22 Mars 2007 à 20h51
Non, c'est moi qui suis désolé... :oops: :oops:
Je suis parti du principe que, l'utilisateur de mon article maîtrisait un peu php... (subtile manière de dire que tu ne connais pas trop le php... Hé hé )

Parce que ton site, tu l'a fait avec quel logiciel ?
Avec un logiciel, ou fait main, avec un éditeur de texte ?
Puis la partie php aussi..tout fait toute seule ou mercury file des p'tits coups de mains par ci par là ?
Vendredi 23 Mars 2007 à 15h36
Ben en fait j'ai pas beaucoup de connaissance en PHP, mon site je l'ai fait à la base en html sous frontpage et pis j'ai mis des pages en PHP car j'ai fait des include pour mes menus (c'est le seul truc que je sais faire Rieur)
Et mon livre d'or c'est un truc tout fait que j'ai eu sur le net, mais comme je ne sais plus où :oops:

Pour le forum c'est pas la même chose on se repère dans les codes.

Mais là, bah j'ai du mal.

Si j'y arrive pas Mercury regardera, il est pas loin :Rieur:

Merci de ta patience et de ton aide Complice
Je suis un ange démoniaque ^-^

On a tous un brin de talent, il suffit de le mettre en avant et de l'aider à devenir grand
Vendredi 23 Mars 2007 à 21h13
Ah ben de rien, c'est normal c'est à cause de moi si tu te retrouve là, en plus il y avait des erreurs donc bon...

Ah oui, comme le livre d'or n'a pas été fait par toi, donc en fait il faut que tu repère la ligne de code qui demande d'insérer le commentaire, normalement il doit y avoir un if $user blabla....
ou alors tu peux rajouter la condition si la réponse est bonne alors, comme ceci :

Code:
$lenombre=$_POST['lenombre'];
$verif=$_POST['verif'];
if($verif==$lenombre+1)
{
//Ici tu place le code qui demande  d'insérer le commentaire dans la base de données...
}

else

{
//Si la réponse n'est pas la bonne, on demande à l'utilisateur de recommencer par exemple, ou on lui affiche un message...

echo 'ce n'est pas la bonne réponse !';
}


Si tu veux tu peux aussi m'envoyer tes fichiers que j'y jette un coup d'oeil...

Allez, Courage ! :D
Jeudi 23 Août 2007 à 01h43
Alors apparemment, on a maintenant des robots qui font des calculs, ou bien des personnes qui utilisent les livres d'or des autres comme moyen de se faire de la pub, ou juste pour emm**der le monde.

Enfin j'ai eu du spam malgré, la petite protection que j'avais mise en place.

Comme tous ces messages contenaient une adresse web, j'ai empêché les messages de contenir une adresse web.

Pour le moment ça marche ! Complice
Répondre au sujet (formulaire complet)