psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009
-
18 mars 2007 à 17:58
Alexandrex3
Messages postés1Date d'inscriptionsamedi 14 juin 2008StatutMembreDernière intervention15 juin 2008
-
15 juin 2008 à 00:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Alexandrex3
Messages postés1Date d'inscriptionsamedi 14 juin 2008StatutMembreDernière intervention15 juin 2008 15 juin 2008 à 00:08
Super !!!
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 29 mars 2007 à 20:17
Toujours pas de note ? Bououuouuuhhh ^^
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 22 mars 2007 à 22:32
J'ai changé tout ça, le code devient :
// On récupère le contenu du fichier
$flood_wordlist = implode('|', array_map('trim', file('http://www.mangakage.com/Includes/Fonctions/flood_wordlist.txt')));
Zip mis à jour :)
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 20 mars 2007 à 20:22
Haha, j'ai trouvé. Vu que le fichier flood_wordlist.txt contenait un mot par ligne, l'implode générait non pas mot1|mot2|mot3 etc mais mot1
|mot2
|mot3
:)
All bugs are killed !
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 20 mars 2007 à 19:52
Aïe aïe aïe, le problème ne vient pas de là, j'ai testé sans cette vérif... Mais d'où vient le bug ? oO
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 20 mars 2007 à 19:34
Rectification, l'ancien système ne fonctionnait plus non plus. Je pense que ça vient des regex de remplacement des lettres en langage c0wb0yz.
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 20 mars 2007 à 19:26
Aïe... Depuis, le script ne vois plus les tentatives de flood...
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 20 mars 2007 à 18:35
Merci bien. Effectivement c'est bien plus simple. Mon point faible a toujours été l'utilisation des arrays. Il a falloir que je m'y mette =)
Par contre, pour les questions que tu as enlevés, je les laisse dans le zip car si les gens ont un espace membre, il leur suffira de modifier la variable de session et le nom du site. Ce que je peux faire c'est les mettre en commentaire.
Encore merci. D'autres avis ?
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 20 mars 2007 à 14:05
Houwaw wouwaw houwaw... tu te prend sacrément la tête pour le choix de ta question...
$question_1 = 'Combien font '.$nombre_1.' '.$choix_operateur[$rand_choix_operateur].' '.$nombre_3.' ?';
eval('$reponse_question_1 = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
$question_2 = 'Quelle est la '.$nombre_2.'ème lettre de l\'alphabet ?';
$reponse_question_2 = $choix_lettre_alphabet[$nombre_2];
$question_3 = 'Connaissez-vous le site Mangakage ?';
$reponse_question_3 = 'oui';
$question_4 = 'Recopiez ce chiffre en commençant par la fin '.$nombre_1.$nombre_3.' :';
$reponse_question_4 = $nombre_3.$nombre_1;
$question_5 = 'Etes-vous loggé à un compte Mangakage ?';
if(isset($_SESSION['login']))
$reponse_question_5 = 'oui';
else
$reponse_question_5 = 'non';
$questions[] = 'Combien font '.$nombre_1.' '.$choix_operateur[$rand_choix_operateur].' '.$nombre_3.' ?';
eval('$reponses[] = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
$questions[] = 'Quelle est la '.$nombre_2.'ème lettre de l\'alphabet ?';
$reponses[] = $choix_lettre_alphabet[$nombre_2];
$questions[] = 'Recopiez ce chiffre en commençant par la fin '.$nombre_1.$nombre_3.' :';
$reponses[] = $nombre_3.$nombre_1;
//On choisit aléatoirement une question
$choix_question = array_rand($questions);
//On initialise la variable de session qui contiendra la réponse lors de la vérification
if(!isset($_SESSION))
session_start();
Je n'ai pas regardé le reste du code je ne noterais donc pas... l'idée bien qu'elle ne soit pas nouvelle reste une bonne alternative au captcha visuels... .. .
@ tchaOo°
ps : j'ai viré deux question inutiles pour quelqu'un qui utilisera(it) cette source vu qu'elles ne concerne que ton site (êtes vous logué...)... .. .
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 19 mars 2007 à 22:00
C'est exactement la fonction dont j'avais besoin ! Merci beaucoup !!
Je met le zip à jour.
Sinon, des idées d'améliorations ?
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 19 mars 2007 à 21:51
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 19 mars 2007 à 21:39
Salut,
pour ton bug c' est tout con.
cf ligne 45 > Poser_question_antiflood.php :
$reponse_question_1 = $nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3;
Or php comprend que ce n' est que du texte !
Utilises la fonction eval :
$reponse_question_1 = eval($nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3);
@+
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 19 mars 2007 à 20:25
héhé, bonne nouvelle, j'ai trouvé mon erreur. Aux lignes 61 à 69, j'avais mis $rand_choix_question au lieu de $choix_question[$rand_choix_question]. Suis-je balot !? ^^
J'avais également oublié de gérer le message de succès de l'opération si l'on était pas loggé.
Il ne reste donc plus que le bug de la variable $reponse_question_1.
Je met à jour le zip de suite.
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 19 mars 2007 à 20:09
Je viens de trouver une précision au bug :
"Les deux bugs (certainement liés) résident dans le fichier de fonction poser_question_antiflood.php :
- La variable $reponse ne contient rien alors qu'elle devrait contenir la véritable réponse à donner.
- La variable $reponse_question_1 contient (par exemple) 7+3 au lieu du résultat (en l'occurrence, elle devrait retourner 10).
Si quelqu'un voit pourquoi, merci de m'en donner la raison."
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 19 mars 2007 à 18:59
C'est mis à jour :)
Un réseau bayésien ? Mais pour quoi faire ? En quoi les probas pourraient jouer dans mon code ?
PS : toujours personne pour mon problème ?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 19 mars 2007 à 00:00
c'est un captcha, pas un anti spam... c'est un anti flood...
amelioration possible : pour les mots, tente de faire un reseau bayesien
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 18 mars 2007 à 18:31
oui.
psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009 18 mars 2007 à 18:19
T'as utilisé session_start() avant la vérification ?
cs_grobs
Messages postés25Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 1 janvier 2009 18 mars 2007 à 18:02
Et bien justement la variable anormalement vide $_SESSION['reponse_antispam_livreor'].
psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009 18 mars 2007 à 17:58
Qu'est ce que tu passes comme valeur au paramètre $variable_de_session de la fonction verif_reponse_antispam() ?
15 juin 2008 à 00:08
29 mars 2007 à 20:17
22 mars 2007 à 22:32
// On récupère le contenu du fichier
$flood_wordlist = implode('|', array_map('trim', file('http://www.mangakage.com/Includes/Fonctions/flood_wordlist.txt')));
Zip mis à jour :)
20 mars 2007 à 20:22
|mot2
|mot3
:)
All bugs are killed !
20 mars 2007 à 19:52
20 mars 2007 à 19:34
20 mars 2007 à 19:26
20 mars 2007 à 18:35
Par contre, pour les questions que tu as enlevés, je les laisse dans le zip car si les gens ont un espace membre, il leur suffira de modifier la variable de session et le nom du site. Ce que je peux faire c'est les mettre en commentaire.
Encore merci. D'autres avis ?
20 mars 2007 à 14:05
$question_1 = 'Combien font '.$nombre_1.' '.$choix_operateur[$rand_choix_operateur].' '.$nombre_3.' ?';
eval('$reponse_question_1 = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
$question_2 = 'Quelle est la '.$nombre_2.'ème lettre de l\'alphabet ?';
$reponse_question_2 = $choix_lettre_alphabet[$nombre_2];
$question_3 = 'Connaissez-vous le site Mangakage ?';
$reponse_question_3 = 'oui';
$question_4 = 'Recopiez ce chiffre en commençant par la fin '.$nombre_1.$nombre_3.' :';
$reponse_question_4 = $nombre_3.$nombre_1;
$question_5 = 'Etes-vous loggé à un compte Mangakage ?';
if(isset($_SESSION['login']))
$reponse_question_5 = 'oui';
else
$reponse_question_5 = 'non';
//On choisit aléatoirement une question
$choix_question = array($question_1, $question_2, $question_3, $question_4, $question_5);
$rand_choix_question = array_rand($choix_question);
if($choix_question[$rand_choix_question] == $question_1)
{$reponse = $reponse_question_1;}
elseif($choix_question[$rand_choix_question] == $question_2)
{$reponse = $reponse_question_2;}
elseif($choix_question[$rand_choix_question] == $question_3)
{$reponse = $reponse_question_3;}
elseif($choix_question[$rand_choix_question] == $question_4)
{$reponse = $reponse_question_4;}
elseif($choix_question[$rand_choix_question] == $question_5)
{$reponse = $reponse_question_5;}
//On initialise la variable de session qui contiendra la réponse lors de la vérification
$_SESSION['reponse_antiflood_livreor'] = $reponse;
return 'Question anti-flood : '.$choix_question[$rand_choix_question];
==========>
$questions = array();
$reponses = array();
$questions[] = 'Combien font '.$nombre_1.' '.$choix_operateur[$rand_choix_operateur].' '.$nombre_3.' ?';
eval('$reponses[] = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
$questions[] = 'Quelle est la '.$nombre_2.'ème lettre de l\'alphabet ?';
$reponses[] = $choix_lettre_alphabet[$nombre_2];
$questions[] = 'Recopiez ce chiffre en commençant par la fin '.$nombre_1.$nombre_3.' :';
$reponses[] = $nombre_3.$nombre_1;
//On choisit aléatoirement une question
$choix_question = array_rand($questions);
//On initialise la variable de session qui contiendra la réponse lors de la vérification
if(!isset($_SESSION))
session_start();
$_SESSION['reponse_antiflood_livreor'] = $reponses[$choix_question];
return 'Question anti-flood : '.$questions[$choix_question];
C'est quand même plus simple et plus propre...
Je n'ai pas regardé le reste du code je ne noterais donc pas... l'idée bien qu'elle ne soit pas nouvelle reste une bonne alternative au captcha visuels... .. .
@ tchaOo°
ps : j'ai viré deux question inutiles pour quelqu'un qui utilisera(it) cette source vu qu'elles ne concerne que ton site (êtes vous logué...)... .. .
19 mars 2007 à 22:00
Je met le zip à jour.
Sinon, des idées d'améliorations ?
19 mars 2007 à 21:51
dsl j' ai mal copié collé :S
c' est plustôt ;
eval('$reponse_question_1 = '.$nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3.';');
@+
19 mars 2007 à 21:39
pour ton bug c' est tout con.
cf ligne 45 > Poser_question_antiflood.php :
$reponse_question_1 = $nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3;
Or php comprend que ce n' est que du texte !
Utilises la fonction eval :
$reponse_question_1 = eval($nombre_1.$choix_operateur[$rand_choix_operateur].$nombre_3);
@+
19 mars 2007 à 20:25
J'avais également oublié de gérer le message de succès de l'opération si l'on était pas loggé.
Il ne reste donc plus que le bug de la variable $reponse_question_1.
Je met à jour le zip de suite.
19 mars 2007 à 20:09
"Les deux bugs (certainement liés) résident dans le fichier de fonction poser_question_antiflood.php :
- La variable $reponse ne contient rien alors qu'elle devrait contenir la véritable réponse à donner.
- La variable $reponse_question_1 contient (par exemple) 7+3 au lieu du résultat (en l'occurrence, elle devrait retourner 10).
Si quelqu'un voit pourquoi, merci de m'en donner la raison."
19 mars 2007 à 18:59
Un réseau bayésien ? Mais pour quoi faire ? En quoi les probas pourraient jouer dans mon code ?
PS : toujours personne pour mon problème ?
19 mars 2007 à 00:00
amelioration possible : pour les mots, tente de faire un reseau bayesien
18 mars 2007 à 18:31
18 mars 2007 à 18:19
18 mars 2007 à 18:02
18 mars 2007 à 17:58