CAPTCHA (ANTI-SPAM)

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
- 2 nov. 2006 à 12:15
cs_VVV
Messages postés
40
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
15 juin 2009
- 21 juil. 2009 à 10:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40180-captcha-anti-spam

cs_VVV
Messages postés
40
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
15 juin 2009

21 juil. 2009 à 10:03
Super !
J'avais pensé modifier la class aussi au niveau de la redirection (si captcha Ok):
header("Location: traitement.php?info1=$TB1&info1=$TB2&info1=$TB3");
Mais je préfère ta solution. Merci :-)
leviathan516
Messages postés
4
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
20 juillet 2009

20 juil. 2009 à 22:50
Bonjour,

voici un exemple tiré du fichier de test de la classe et modifié pour reprendre ton code.

<?php
session_start();

require_once "captcha.class.php";

$captcha = new FS_captcha();
$result = "";

if (isset($_POST["reponse"]) && !empty($_POST["reponse"])) {
if ($captcha->check($_POST["reponse"])) {
// traitement des autres champs du formulaire
print_r($_POST);
} else {
die('erreur dans le captcha');
}
}
$question = $captcha->generate();
?>
<html>
<head>
<title>Test</title>
</head>

<form method="POST" name="code" action="traitement.php">

<?php echo $question; ?> :


</form>

</html>
cs_VVV
Messages postés
40
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
15 juin 2009

20 juil. 2009 à 17:04
Salut :-)

J'aurais voulu intégrer ce système dans un formulaire php avec traitement des données dans une autre page.
Le formulaire comporte plusieurs champs à remplir, plus celui du captcha et de sa réponse.

Malheureusement je n'arrive pas à traiter les champs du formulaire après (en même temps? que) le captcha...
Comment pourrais-je envisager et la vérification du captcha et le traitement du formulaire en une seule et même opération ?

A toutes fins utiles, voici une partie du code :

<form method="POST" name="code" action="traitement.php">



">



</form>
juki_webmaster
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
15 nov. 2006 à 21:43
Moi à la limite je redigirais meme pas, je le ferais croire qu'il repond toujours aux captchas, si tu le bloque il reviendras avec une autre IP.
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

6 nov. 2006 à 14:32
"- je n'ai pas utilisé file() à la place de explode(): file ajoute \n\r à la fin des ligne alors que j'ai l'habitude d'utiliser seulement \n. De plus il y a un risque de problème sous Windows (avec les \n et les \n\r). Etant donné qu'il s'agit de fonction assez similaire, je ferais des tests de rapidité sur les deux fonctions afin de voir les différences et j'en tirerais les conséquences. Si vous avez plus de renseignements sur ça, je suis tout à votre écoute."

Non file n'ajoute rien en fin de ligne... le \n\r est le format de retour à la ligne windows... sous Linux c'est \n et sous Mac c'est \r... au moins avec file() tu est sûr d'être crossplateforme... et si tu as peur tu peux toujours faire un rtrim() sur la line... .. . ;o)

http://fr2.php.net/file

Sinon ça m'a l'air plutot pas mal... par contre tout comme pour le backlistage je laisserais le choix de rediriger ou non sur une page... d'ailleurs à ce sujet plutot que d'utiliser des constantes qui ne servent qu'un ou deux fois il peut être bien de créer un attribut $conf qui stockerait la config sous forme de tableau associatif... les valeurs de configuration pouvant être changées via le constructeur et\ou un méthode... mais c'est un détail... .. . ;o)

@ tchaOo°
Afficher les 10 commentaires