Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2008, 15h41   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 1
Points : 1
Par défaut sécuriser un formulaire par une équation

bonjour tout le monde

s'il vous plait j'ai un formulaire php que je veux sécurisée parce que ce formulaire ajoute dans ma base de donnèes les informations donnèes par l'utilisateur
je veux donc le sécurisé contre les spam et pour le faire je veux ajouter un champs qui permet de donner des équations de mathematique simple et un champs qui permet à l'utilisateur d'introduire le resultat si le resultat est valide ça marche et les donnèes sont enregistrèes si non le formulaire n'est pas validé

mais le problème que je ne sais pas comment le faire
donc merci de m'aider
aboura86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 15h46   #2
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
regarde des docs sur les "captcha"
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 11h23   #3
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Tu as même l'info dans la FAQ, bon d'accord c'est un captcha générant une image, mais l'idée y est, après si tu ne sais pas faire, il faut préciser ce que tu ne sais pas faire...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 12h22   #4
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 1
Points : 1
merci pour votre rèponse mais ce que je veux c'est de prèsenter à l'utilisateur une petite equation genre
que donne 1+2
et il va tapez le resultat si sava ça y est le formulaire passe si non il ne passe pas
mais je ne sais pas comment faire tout ça même lorsque j'ai vue les exemples de captcha d'image parce que je comprend pas comment faire pour calucler le resultat et le valider

donc s'il vous plait si vous pouvez me donnez un exemple prècis ça sera tres gentille et merci
aboura86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 12h33   #5
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Exemple (non testé) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
// détermination des variables aléatoires
$var_un = rand(1, 1500);
$var_deux = rand(1, 1500);
 
$total = $var_un + $var_deux;
 
 
if ($total == $_POST['captcha']) {
    echo 'tout juste';
} else {
    echo 'tout faux';
}
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 14h07   #6
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
Citation:
Envoyé par 12monkeys Voir le message
Exemple (non testé) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
// détermination des variables aléatoires
$var_un = rand(1, 1500);
$var_deux = rand(1, 1500);
 
$total = $var_un + $var_deux;
 
 
if ($total == $_POST['captcha']) {
    echo 'tout juste';
} else {
    echo 'tout faux';
}
la ca ne peux pas marcher vu que tu generes les nombres au moment du traitement.

en gros soit tu as un tableau d'equivalence en dur dans le php, soit tu te sers d'une base SQL.
le principe est le meme

je vais t'expliquer comment je vois la chose avec un tableau en PHP


tu a un tableau dison avec des equations et leur resultats

Code :
1
2
3
4
5
6
7
8
$tab[0]["equation"] = "1+1";
$tab[0]["resultat"] = 2;
 
$tab[1]["equation"] = "1+3";
$tab[1]["resultat"] = 4;
 
$tab[2]["equation"] = "24+1";
$tab[2]["resultat"] = 25;

dans la page ou tu generes le formulaire, tu choisis au hasard une entree du tableau, tu affiches donc "l equitation" correspondant.
et pour un traitement plus simple, tu mets l'id du tableau dans un champs hidden.

et lorsque tu va verifier le formulaire, tu compares le resultat de l'equation a la valeur de "resulat" pour l'indice du tableau renvoye par le champs hidden (si il est set, et avec les registrar global a OFF sinon c'est faillible)

c'est une facon de gerer les captcha de facon minimaliste, mais ca evitera deja les robots posteur
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 14h16   #7
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Citation:
Envoyé par chtipitou Voir le message
la ca ne peux pas marcher vu que tu generes les nombres au moment du traitement.
Bien sur, ce n'était qu'un exemple

Perso je ferais exactement comme pour le captcha dans la FAQ : je génèrerais le calcul dans un fichier à part en incluant ensuite la demande (ex : 1 + 1) dans une image, dans ce fichier je placerais le résultat dans la session, comme ça dans la page du formulaire il ne reste qu'à vérifier que le résultat est juste.

C'est l'exemple de la FAQ sauf qu'à la place de nombres et chiffres aléatoires on fait un calcul...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 14h36   #8
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
Citation:
Envoyé par 12monkeys Voir le message
Bien sur, ce n'était qu'un exemple
j'anticipe le copier collé et le repost pour dire que ca ne fonctionne pas.
mais oui +1 pour suivre la faq
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 18h03   #9
Membre actif
 
Avatar de elcoyotos
 
Inscription : octobre 2006
Messages : 297
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : octobre 2006
Messages : 297
Points : 175
Points : 175
rrAvec une session :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
session_start();
 
function captchaCalcul() {
    $operators = array('-' => '-', '+' => '+', '*' => 'x');
 
    $operator = array_rand($operators);
 
    $op = $operators[$operator]; // on récupère l'opérateur de calcul
 
    $num = array('Zero', 'Un', 'Deux', 'Trois','Quatre', 'Cinq', 'Six', 'Sept','Huit', 'Neuf', 'Dix');
 
    $nb1 = array_rand($num);
    $nb2 = array_rand($num);
 
    if($operator === '-' && $nb1 < $nb2) {
        while($nb1 < ($nb2 = array_rand($num))); // on évite les résultats négatif en cas de soustraction
    }
 
    eval('$_SESSION[\'captchaResult\'] = strval('.$nb1.$operator.$nb2.');');
 
    return $num[$nb1]." <span class=\"gras\">".$op."</span> ".$num[$nb2];
}
puis la vérification :
Code :
 if ( $_POST['verif'] != '' and  $_POST['verif'] == ($_SESSION['captchaResult']) ) {
Et bien sur, le formumlaire :
Code :
Combien font : <?php echo captchaCalcul(); ?> <input name="verif" type="text" id="verif" size="5" maxlength="3" />
elcoyotos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h49.


 
 
 
 
Partenaires

Hébergement Web