Manuel Pear

Text_CAPTCHA_Numeral

Implémentation des CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart) par opérations mathématiques.

Introduction

Ce paquet fourni le nécéssaire pour créer des CAPTCHA numériques (Completely Automated Public Turing tests to tell Computers and Humans Apart). Cela comprend les fonctionnalités suivantes:

Ce paquet crée des CAPTCHAs numériques; étant donné la nature sans état du protocole HTTP, la logique pour sécuriser une page utilisant ce paquet doit être specifically implémentée. Regardez l'exemple d'utilisation pour des informations détaillées.

Exemple

L'exemple suivant implémente l'utilisation classique d'un CAPTCHA: Les données d'un formulaire soumis ne sont prise en considération que quand le CAPTCHA a correctement été résolu.

Exemple 64-3. Créer un CAPTCHA numérique

L'exemple qui suit vous montre simplement comment générer une simple opération mathématique avec Text_CAPTCHA_Numeral.

  1. <?php
  2. require_once 'Text/CAPTCHA/Numeral.php';  
  3. $num   = new Text_CAPTCHA_Numeral;  
  4. $operation = $num->getOperation();  
  5.  
  6. /**
  7. * This will print the mathematical operation
  8. * that has been generated by the package.
  9. */  
  10. print $operatio  
  11. ?> 

Exemple 64-4. Protéger un forumlaire avec un CAPTCHA numérique

Cet exemple vous présente comment protéger un formulaire en utilisant un CAPTCHA numérique. On génère une opération arithmétique et on conserve la réponse dans une variable de session

  1. <?php
  2. require_once 'Text/CAPTCHA/Numeral.php';  
  3. $numcap = new Text_CAPTCHA_Numeral;  
  4.  
  5. if (isset($_POST['captcha']) && isset($_SESSION['answer'])) { 
  6.    if ($_POST['captcha'] == $_SESSION['answer']) { 
  7.       $errors[] = 'Ok.. Vous êtes probablement un humain..'; 
  8.    } else { 
  9.       $errors[] = 'Soit vous êtes maladroit, soit vous n\'êtes pas humain'; 
  10.    }  
  11. } 
  12.    if (!empty($errors)) { 
  13.       foreach ($errors as $error) { 
  14.          print "<h1><font color='red'>$error</font></h1><br />"; 
  15.       } 
  16.    } 
  17.  
  18.  
  19.    print '
  20.       <form name="capter" action="index.php?page=liveExample" method="post">
  21.        <table>
  22.        <tr>
  23.        <th>What is this result pilgrim?: '.$numcap->getOperation().'</th>
  24.        <td><input type="text" value="" name="captcha" /></td>
  25.        </tr>
  26.        <tr>
  27.        <th/>
  28.        <td><input type="submit" value="Laissez moi vous prouver que je suis un humain!" /></td>
  29.        </tr>
  30.       </form>
  31.    '; 
  32.    $_SESSION['answer'] = $numcap->getAnswer(  
  33. ?> 

Information à propos de Text_CAPTCHA_Numeral et de son fonctionnement interne

Text_CAPTCHA_Numeral vous donne la possibilité de générer des CAPTCHA arithmétiques.

  • getOperation() génère l'opération qui sera affichée à l'utilisateur.

    getAnswer() retourne la réponse attendue pour l'opération proposée.


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique