Fork me on GitHub

Rapport de message :*
 

Re: Inscriptions d'utilisateurs indésirables

Titre du sujet : Re: Inscriptions d'utilisateurs indésirables
par olivee sur 30/10/2013 10:47:45

voici une autre solution peut être plus efficace au lieu de fixer la question et la réponse on pose aléatoirement une question avec une réponse à chaque affichage du formulaire d'inscription donc le robot ne peut pas enregistrer la réponse pour ressayer encore une fois donc en tout il y a plus que 200 possibilités alors pas de chance pour le robot tout con de trouver la bonne réponse au question.
vous êtes libre de changer le contenu des array et du question mais il faut garder une phrase logique et compréhensible sans piège il faut bien sûr penser aux utilisateurs humain pour ne pas les démotiver .

dans le fichier forms.php on ajoute
Citation :
// On créer 3 array avec des valeurs permettant de construire plusieurs question
$array1 = array('chat','chien','cheval','pigeon','singe','mouton','cochon','poisson','renard','lion');
$array2 = array('Gérard Holtz','Vincent Lagaf','Laurence Ferrari','Michel Drucker','Jean-Pierre Foucault','Christophe Dechavanne','Carla Bruni','Patrick Sebastien','Jean-Pierre Pernaut','William Leymergie');
$reponse = array('blanc','bleu','rouge','noir','violet','jaune','marron','rose','gris','vert');

// Et on forme notre phrase avec des éléments des tableaux choisis au hasard
$phrase = 'Quelle est la couleur du '.$array1[rand(0,9)].' <strong>'.$reponse[rand(0,9)];.'</strong> de '.$array2[rand(0,9)].' ?';



$elements[0][] = array('element' => new XoopsFormHidden('hidebott', $reponse[rand(0,9)]));
$weights[0][] = 0;

$elements[0][] = array('element' => new XoopsFormLabel(_QUESTION_ANTI_ROBOT, $phrase));
$weights[0][] = 0;
$elements[0][] = array('element' => new XoopsFormText(_REPONSE_AU_QUESTION_ANTIBOT, 'phrase', 35, 32, ''), 'required' => true);
$weights[0][] = 0;





et dans le fichier register.php on ajoute

Citation :

$phrase = isset($_POST['phrase']) ? $myts->stripSlashesGPC(trim($_POST['phrase']) ) : '';
$hidebott = isset($_POST['hidebott']) ? $myts->stripSlashesGPC(trim($_POST['hidebott']) ) : '';

if ( (isset($phrase)) && ($phrase != $hidebott) ) {
$stop .= _US_REPONSEAUQUESTIONESTFAUXCOULEUR . '<br />';

}



il y a une autre solution c'est de changer complètement le formulaire d'inscription et changer le lien de la page register.php c'est un peux compliquer à expliquer ici.




ps: pour Alain la réponse doit être en minuscule, il faut changer France par france c'est plus facile pour l'utilisateur humain. On peut même demander de taper un mot qu'on fixe aléatoirement comme ça l'utilisateur sait se qu'il doit taper. merci de proposer cette solution au core team on peut introduire tout ça dans le core de xoops dans la fonction XoopsUserUtility::validate

on peut utiliser cette astuce dans le formulaire des commentaires comme ça on aura plus des commentaires bidons.
s'il y a des questions je suis là.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

85 Personne(s) en ligne (69 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 85 | Plus ...