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

EDI, CMS, Outils, Scripts et API PHP Discussion :

ajout Captcha dans page php.


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ajout Captcha dans page php.
    Bonjour,

    J'ai sur les pages de mon site un script pour mettre des commentaires. Des robots envoient des spams. J'ai donc decide d'inserer un script captcha que j'ai telecharger sur captcha.fr.
    Dans la page je vois le code, il se regenere mais meme le code recopie faux ca passe.

    J'ai pourtant suivi la marche a suivre, mais avec une ou des erreurs car probleme.

    Si quelqu'un veut bien m'aider je peux envoyer les codes.

    Merci cordialement.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Hello,

    Ton poste date un peu, mais pour la forme je vais proposer une petite source pour ceux qui eux aussi serraient intéressé par ceci.

    Voila donc la source de 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
     
    <?php
     
    /* Cette captcha est loin d'être parfaite, elle est présenté à titre d'exemple,
    si vous avez des améliorations, n'hésitez surtout pas à poster ici même,
    merci à vous. =) */
     
    // On initialise les sessions
    session_start();
     
    // On met le header pour créer une image au format PNG
    header("Content-type: image/png");
     
    // On définit dans une variable $img les dimensions de l'image (captcha)
    $img = imagecreate("100", "40");
     
    /* On définit dans une variable $white la couleur pour le fond de l'image en format RVG
    (blanc/white) avec pour parametre $img */
    $white = imagecolorallocate($img, 255, 255, 255);
     
    // comme pour le fond mais cette fois-ci pour la couleur du texte de la captcha (noir/black)
    $black =  imagecolorallocate($img, 0, 0, 0);
     
    /* On définit dans la variable $key notre clé pour le hashage de notre captcha,
    il est très fortement conseillé de la changer, j'ai mis ça pour l'exemple UNIQUEMENT ! */
    $key = "azertyuiop";
     
    // On mélange tous les caractères de la variable $key grâce à la fonction str_shuffle().
    $key = str_shuffle($key);
     
    /* On utilise la fonction substr() pour afficher quelques caractères bien spécifiques
    et non pas toute la chaine $key. */
    $key = substr($key, 7, 8);
    $key = substr($key, 1, 2).substr($key, -5, 5);
     
    // On cée la session 'captcha' qui vaut 
    $_SESSION['captcha'] = sha1($key);
     
    // On assigne les couleurs...
    imagestring($img, 5, 20, 12, $key, $black);
    imagecolortransparent($img, $white);
     
    /* ...Et enfin on crée notre image PNG grâce à la fonction imagepng() qui prend
    comme argument la variable $img. */
    imagepng($img);
     
    ?>
    Source de commentaires.php (qui utilise notre captcha):
    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
     
    <?php
    session_start();
     
    /* On récupère le code saisie dans le fieldtext "captcha", situé dans le formulaire
    de poste de commentaire, dans une variable $captacha tout en hashant grâce à la fonction sha1(),
    et on le met en majuscule grâce à la fonction strtoupper(). */
    $captcha = sha1(strtoupper($_POST['captcha']));
     
    // Si la variable string $captcha est égale à la captcha générée dans la session 'captcha' depuis la page captcha.php...
    if($captcha == $_SESSION['captcha'])
    {
        //... on effectue l'enregistrement du commentaire...
    }
    else// ...sinon...
    {
        // ...on affiche un message d'erreur et on pourrait rediriger vers l'accueil par exemple...etc.
        echo '<h3>Le code anti-spam saisi est incorrect.</h3>';
    }
     
    ?>
    <html>
    <head>
    <title>Website.com | Postez votre avis !</title>
    </head>
    <body>
    <form action="" method="POST">
    [...]<!-- Ici par les champs pour le commentaire en lui-même -->
    <img id="captcha" src="captcha.php" name="captcha" alt="" />&nbsp;&nbsp;<a href="" onclick="document.getElementById('captcha').src = 'captcha.php?' + Math.random(); return false">Recharger le code anti-spam</a>
     
    Merci de bien vouloir recopier le ci-dessous le code anti-spam écrit ci-dessus:<br />
    <input type="text" name="captcha" value=""><br />
    <input type="submit" name="" value="Donner mon avis !" />
    </form>
    </body>
    </html>
    Je ne pense pas avoir oublié quelque chose, si c'étais le cas et/ou si vous avez des suggestions/améliorations à proposer, merci de poster, pour le bien de toute la communauté.

    Cordialement,
    Une Tapz du Net...

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut captcha dans page php.
    Bonjour et merci pour cette reponse,

    Mon probleme est que je possede un script en bas des pages recit de voyage en voilier.
    Ce sript permet de laisser des commentaires lorsqu'on clique sur le bouton envoyer.
    Je souhaite ajouter une captcha qui a son propre bouton et suppimer le bouton du script de telle facon que l'on ne puisse envoyer le commentaire qu'apres avoir renseigne la captcha.
    Comme je ne comprends rien en php je suis incapable de realiser ca.
    Cordialement.

Discussions similaires

  1. trojan dans page php
    Par francis m dans le forum Sécurité
    Réponses: 4
    Dernier message: 03/10/2007, 12h39
  2. [Sécurité] Page php dans page php
    Par ChrisMan dans le forum Langage
    Réponses: 1
    Dernier message: 31/05/2007, 15h57
  3. Réponses: 7
    Dernier message: 09/01/2007, 21h01
  4. ouvrire popup dans page php
    Par speedylol dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/10/2005, 22h04
  5. [SGBD] Executer mysqldump dans page php
    Par JCDC dans le forum Débuter
    Réponses: 1
    Dernier message: 15/09/2005, 14h43

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