IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[JpGraph] Utiliser un captcha : récupérer le texte affiché


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut [JpGraph] Utiliser un captcha : récupérer le texte affiché
    Bonsoir,

    Je voudrais intégrer un captcha dans mon formulaire d'inscription, j'ai un peu regardé à gauche à droite et je suis tombé sur le code dans la faq.

    Ce code marche bien... sauf :

    je ne sais pas comment récupérer le texte qui s'affiche :

    si je met la partie de code donnant le texte affiché dans la partie de code affichant l'image, soit dans <img src="img.php"> alors je ne peux pas l'utiliser dans le formulaire pour vérification..

    mais si je le met dans le formulaire avant de faire appel à l'image, alors l'image ne s'affiche pas...

    Comment faites vous, merci...

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    salut voici ce que j'ai utilisé pour mon site facile a installé et a configuré.il y'en a pour tes gouts http://www.cryptographp.com/index.php?page=4&langue=fr
    j'èspère que ca t'aidera.

  3. #3
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Merci mais je connais déjà, j'ai essayé de le décortiquer mais j'ai pas tout compris....

    Je préfère apprendre par moi même, alors si quelqu'un à une solution à me donner...

    Merci.

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Voici un code que j'ai récemment utilisé :

    Le captcha.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <?php 
        session_start(); 
     
        $length = 5; // Longueur de la chaîne générée en image 
     
        $string = ''; 
        for($i = 0; $i < $length; $i++)      //Création de la chaine qui sera affichée 
        { 
             $string .= chr(mt_rand(97, 122));    //Récupération aléatoire d'un caractères alphabétique minuscule 
        } 
     
        // Création de la zone image en fonction de la longueur de texte à afficher 
        $image = imagecreatetruecolor(30 * $length, 50); 
     
        // Création du fond de l'image 
        for($x = 0; $x < imagesx($image); ++$x) 
        { 
            for($y = 0; $y < imagesy($image); ++$y) 
            { 
                if (mt_rand(1,5) == 4 ) 
                { 
                    $vred = mt_rand(0, 100); 
                    $vgreen = mt_rand(0, 100); 
                    $vblue = mt_rand(0, 100); 
                } 
                else 
                { 
                    $vred = mt_rand(100, 150); 
                    $vgreen = mt_rand(100, 150); 
                    $vblue = mt_rand(100, 150); 
                } 
     
                // Allocation d'une couleur au fond 
                $color = imagecolorallocate($image, $vred, $vgreen, $vblue); 
     
                // Affichage d'un pixel ayant la couleur du fond 
                imagesetpixel($image, $x, $y, $color); 
     
                // Suppression de la couleur du fond allouée 
                imagecolordeallocate($image, $color); 
            } 
        } 
     
        // Création de la bordure 
        $vred = mt_rand(0, 240); 
        $vgreen = mt_rand(0, 240); 
        $vblue = mt_rand(0, 240); 
     
        // Allocation d'une couleur à la bordure 
        $color = imagecolorallocate($image, $vred, $vgreen, $vblue); 
     
        // Tracé de la bordure 
        imagerectangle($image, 0, 0, imagesx($image)-1 , imagesy($image)-1, $color); 
     
        // Suppression la couleur de la bordure allouée 
        imagecolordeallocate($image, $color); 
     
        // Création du texte 
        for($i = 0; $i < $length; $i++) 
        { 
            $vred = mt_rand(150, 240); 
            $vgreen = mt_rand(150, 240); 
            $vblue = mt_rand(150, 240); 
     
            $size = mt_rand(20, 30); 
            $angle = mt_rand(-10, 20); 
            $x = 13 + (20 * $i); 
            $y = mt_rand(30, imagesy($image) - 10); 
            $color = imagecolorallocate($image, $vred, $vgreen, $vblue); 
            $font = './font/posthuman.ttf'; 
     
            // Dessin du texte 
            imagettftext($image, $size, $angle, $x, $y, $color, $font, $string[$i]); 
     
            // Suppression de la couleur du texte allouée 
            imagecolordeallocate($image, $color); 
        } 
     
        //Enregistrement en session du captcha 
        $_SESSION['captcha-text'] = $string; 
     
        // Création de l'image complète au format PNG 
        header("Content-type: image/png");      
     
        //Envoi de l'image 
        imagepng($image);                     
    ?>
    Et la vérification après soumission :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Si soumission 
                        if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') 
                        {                
                            //Et captcha correct 
                            if(isset($_SESSION['captcha-text']) && $_SESSION['captcha-text'] == $_POST['captcha']) 
                            {.....

  5. #5
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Ok merci Kerod, je vais essayer ton code.

    J'avais vaguement pensé à mettre l'info dans la session mais je me disais que ce ne serait pas très sécurisé (je ne sais pas pourquoi ?).

    Le " if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') " doit être une sécurité ?

  6. #6
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Hello,

    Tu as raison de dire que dans ce cas là ce n'est pas évident.

    La solution d'appel du script php directement dans l'image est un peu chiante puisqu'il faut passer par les paramètres GET ce qui revient à annoncer le moit de passe en clair.

    Pourquoi simplement ne pas générer l'image dans le même script mais écrire cette image sur le disque pour qu'elle (avec un nom aléatoire) soit rappelée directement dans ton script?

    Tu as aussi les librairies JpGraph et Artichow qui génèrent des images anti-spam....

    @++

  7. #7
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Tu as raison eric190, c'était bien ça mon problème...

    Mais la solution de Kerod marche et me conviens pour l'instant.

    Merci de votre aide...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script pour récupérer texte affiché
    Par Analou dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 03/07/2013, 08h48
  2. [Turbo Pascal] Récupérer un texte et afficher *
    Par drodidir dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 10/06/2011, 17h02
  3. [JpGraph] Comment utiliser le caractère 'à' dans un texte ?
    Par [ZiP] dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 28/12/2007, 22h35
  4. [GNU Pascal] Utiliser la souris en mode texte
    Par jack412f dans le forum Autres IDE
    Réponses: 6
    Dernier message: 21/05/2004, 01h09
  5. [methode] récupérer du texte
    Par thesly dans le forum Débuter
    Réponses: 6
    Dernier message: 23/04/2004, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo