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.

Merci pour votre code, il marche d'enfer.
Il est personnalisable. Bravo !
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
S'il existait une médaille pour la simplicité, elle serait pour vous.
Bravo.
Merci.
Pour que ça marche sous Free, il faut impérativement un répertoire 'sessions' à la racine.
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.
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.
ointer">{$html}</span>
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
REFRESH;
}
mon environnement de developpement est sur windows