Tuto PHP - Créer un captcha

PrimFX Boris ('PrimFX') Le 5 juin 2016

Envie d'ajouter un code anti-robot à certains de vos formulaires ? Voici un petit tuto qui vous montrera comment réaliser ça en PHP !

Documentation des fonctions pour la création de l'image :

Polices utilisées :

Code du tuto :
  • index.php
<?php
session_start();

if(isset($_POST['captcha'])) {
   if($_POST['captcha'] == $_SESSION['captcha']) {
      echo "Captcha valide !";
   } else {
      echo "Captcha invalide...";
   }
}

?>
<form method="POST">
   <img src="captcha.php" />
   <input type="text" name="captcha" />
   <input type="submit" />
</form>
  • captcha.php
<?php
session_start();

$_SESSION['captcha'] = mt_rand(1000,9999);
$img = imagecreate(65,30);
$font = 'fonts/destroyfont.ttf';

$bg = imagecolorallocate($img,255,255,255);
$textcolor = imagecolorallocate($img, 0, 0, 0);

imagettftext($img, 23, 0, 3, 30, $textcolor, $font, $_SESSION['captcha']);

header('Content-type:image/jpeg');
imagejpeg($img);
imagedestroy($img);

?>

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 16

  • Meegolo Le 3 janvier, à 13:11 | Répondre

    Bonjour Boris ('PrimFX'),
    Super tes tutos. Voilà je viens de me faire le tuto. Je suis comme d'autre ici, l'image ne veux pas apparaitre. J'ai essayé Chrome, Firefox, Edge. J'ai même essayé ton code copier/coller rien n'y fait mieux. Sur Firefox si je demande afficher l'image dans un onglet j'ai un message d'erreur " L'image "http://localhost/captcha/captcha.php" ne peut être affichée car elle contient des erreurs".
    En attente d'une réponse. Merci

  • Dotmazy Le 1 septembre, à 09:24 | Répondre

    S'il te plais contact moi avec discord DotMazy#8745, car moi sa m'afiche un mini carrer noir avec un contour blanc stp discord:DotMazy#8745

  • travagilini Le 18 juillet, à 16:50 | Répondre

    l'image ne s'affiche pas chez moi ça afichhe une mini image blanche et dechirer

  • Amor-Fati Le 21 février, à 16:17 | Répondre

    Merci beaucoup, c'est parfait...
    Je voulais mettre le captcha Google, mais j'avais une erreur car je suis encore en php 4...
    Le site ? www.lafontaine.net

  • webbricoleur Le 2 novembre, à 11:34 | Répondre

    hello ! j'ai eu ce problème suite à une erreur de syntaxe dans mon code.
    conseil: fermer son onglet , vider le cache .
    si ton code est bon ça devait allez

  • webbricoleur Le 2 novembre, à 11:31 | Répondre

    très bon tuto.
    pour ceux qui cherche des fontes bizarroïdes tordues etc: https://www.dafont.com/fr/
    sinon j'ajoute un champ caché type de valeur ' ' , vide bien sur ! ^^ le boot ce fera un plaisir de le remplir
    autre astuce ne pas ouvrir votre formulaire avec un lien mais avec un code javascript (oui bon tjs la guerre java pas java )
    enfin bref merci pour ce site. simple clair et avec des codes qui marche.

  • geek_l Le 12 juin, à 16:28 | Répondre

    Le site est bien avec ce qu'il faut sans trop de protocoles.. Merci!!

  • youki Le 17 novembre, à 00:15 | Répondre

    très bon site cela fait un an que je suis du domaine  je suis depuis 7 moi sur se cite et  je suis  passer en premium    je conseille se site a tout le monde 

  • webchrea Le 9 novembre, à 18:54 | Répondre

    @webchrea autant pour moi j'ai pas Télécharger le fichier font TTF ca marche nikel

  • webchrea Le 9 novembre, à 14:50 | Répondre

    J'ai mis les codes exactement similaire comme vous l'avez nous montré, mais cela ne marche pas pour moi, besoin d'aide svp, merci d'avance.

  • Jlone89z Le 16 août, à 17:15 | Répondre

    C"est bon!
    Je viens d'introduire le systeme Captcha dans l'Espace membre et ca marche tres bien!
    C'e vraiment kool!

  • bilaldu60 Le 24 juillet, à 09:34 | Répondre

    Encore un bon tuto.Merci

  • goodlysmk Le 7 juillet, à 10:45 | Répondre

    Bonjour,
    J'ai mis les codes exactement similaire comme vous l'avez nous montré, mais cela ne marche pas pour moi, besoin d'aide svp, merci d'avance.

  • goodlysmk Le 7 juillet, à 10:44 | Répondre

    Bonjour,
    J'ai mis les codes exactement similaire comme vous l'avez nous montré, mais cela ne marche pas pour moi, besoin d'aide svp, merci d'avance.

  • goodlysmk Le 7 juillet, à 10:33 | Répondre

    Bonjour,
    J'ai mis les codes exactement similaire comme vous l'avez nous montré, mais cela ne marche pas pour moi, besoin d'aide svp, merci d'avance.

  • arrolight Le 27 juin, à 09:17 | Répondre

    Super tuto !!Continue ,tu explique très bien!!