web 2.0

Seebz.net

Tiny Captcha, un captcha anti-spam léger et personnalisable

Le spam est une plaie, autant pour notre boite mail que sur le web.

L'excellent captcha anti-spam Cryptographp n'étant plus disponible, je me suis donc résigné à développer mon propre captcha anti-spam.
Je l'ai nommé Tiny Captcha car plus léger que son homologue Cryptographp mais il est suffisamment personnalisable pour pouvoir l'adapter à votre design.

Démo

Configuration

La configuration se fait dans le fichier captcha.php, divers paramètres sont disponible :

$captcha['width'] la largeur de l'image
$captcha['height'] la hauteur de l'image 
$captcha['font_file'] la police à utiliser (le fichier doit se trouver dans le dossier fonts)
$captcha['font_color'] la couleur de base du texte
$captcha['font_color_variation']   la variation de la couleur (par rapport à la couleur de base)
$captcha['font_size_min'] la taille minimale du texte
$captcha['font_size_max'] la taille maximale du texte
$captcha['background_color'] la couleur d'arrière plan
$captcha['char_list'] les caractères autorisés
$captcha['nb_char_min'] le nombre minimum de caractères du code
$captcha['nb_char_max'] le nombre maximum de caractères du code
$captcha['rotation'] la rotation maximale des caractères
$captcha['quality'] le niveau de qualité de l'image
$captcha['casse_sensitive'] distinction entre minuscule et majuscule

Utilisation

Commencez par placer le dossier tinycaptcha à la racine de votre site web.

Ensuite vous devez inclure le fichier captcha.php dans votre fichier PHP, il faut donc placer le code suivant au début de votre fichier php :
include 'tinycaptcha/captcha.php'

Utilisez la fonction captcha_image() à l'endroit où vous souhaitez afficher l'image.

Utilisez la fonction captcha_refresh() à l'endroit où vous souhaitez afficher un bouton pour rafraichir l'image.

Utilisez la fonction captcha_field() à l'endroit où vous souhaitez afficher le champ où l'on écrira le code de vérification.

La fonction captcha_verif() permet de vérifier si le code introduit est correct.

Vous retrouverez un exemple d'utilisation dans le fichier tinycaptcha_exemple.php inclus dans l'archive.

Téléchargement

Télécharger l'archive au format zip.

Partager : Share
 

6 Réponses à “Tiny Captcha, un captcha anti-spam léger et personnalisable”

  1. Merci pour votre code, il marche d'enfer.
    Il est personnalisable. Bravo !

  2. L'idée est très bien le code est simple et propre ^^ Je vais regarder ça de plus prêt dès demain soir :)

  3. S'il existait une médaille pour la simplicité, elle serait pour vous.
    Bravo.

  4. Merci.
    Pour que ça marche sous Free, il faut impérativement un répertoire 'sessions' à la racine.

  5. Salut a vous!
    j'arrive peut etre en retard mais cependant, je n'ai pas a faire fonctionner ce captcha localement.

    lors du chargement de la page, je recois cette erreur : Notice: Undefined variable: html in C:wampwwwtesttinycaptchacaptcha.php on line 85
    les images de code et bouton reload ne s'affiche.

    merci d'avance.


  6. J'ai defini la variable $html avant de l'utiliser cependant je ne recois plus cette erreur mais les images ne s'afficheent pas toujours.

    function captcha_refresh()
    {
    $html='';
            global $captcha;
            if( !$html )
                    $html = '<img src="' . $captcha['basepath'] . 'refresh.png" alt="Refresh" />';
           
    echo <<< REFRESH
    <span onclick="document.getElementById('tinycaptchaimg').src = '{$captcha['basepath']}image.php?'+Math.round(Math.random(0)*1000);" style="cursor:pointer">{$html}</span>
    REFRESH;
    }

    mon environnement de developpement est sur windows

Poster un commentaire

Remonter