JeuWeb - Crée ton jeu par navigateur
[GD] Code-image anti-bot (simple) - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [GD] Code-image anti-bot (simple) (/showthread.php?tid=664)



[GD] Code-image anti-bot (simple) - Horace - 18-01-2007

Un mini-script facilement adaptable par des débutants. Utilisable pour vos inscriptions ou tout autre formulaire d'accès public. L'utilisateur doit recopier un code, affiché sous forme d'image. Le but est de gêner les bots publicitaire ou les bots de triche (joueur).

[Image: image8pf0.png]

- Fonctionne avec GD (dispo partout)
- utilise les sessions. (sur Free.fr créer le répertoire "session")

Dans la page formulaire :
Code PHP :
<?php 
session_start
(); // en tête du code, avant tout affichage

// on génère un code aléatoire. Ici un numéro à 4 chiffres.
$code = rand(1000,9999);

// le code est transmis ici par session (joli)
$_SESSION['code'] = $code

et sur cette page, dans le formulaire : (html)

Recopiez ce code : <img src="imageSecure.php" alt="code" />
<input type="text" name="code" id="code" />




L'image-code : un fichier nommé imageSecure.php (code complet)
Code PHP :
<?php
session_start
();
$code = $_SESSION['code']; // on récupère la valeur du code secret


$image = ImageCreate (100, 30) or die ("Création image impossible !");
$back_color = ImageColorAllocate ($image, 0, 10, 10); // couleur fond noir
$txt_color = ImageColorAllocate ($image, 233, 114, 191); // couleur écriture rose
ImageString ($image, 31, 5, 5, $code, $txt_color); // écriture du code sur l'image

// affichage
header ("Content-type: image/png");
ImagePng ($image);
ImageDestroy($image);

?>

Et finalement, dans la page de validation du formulaire, on vérifie le code :

Code PHP :
<?php 
session_start
();

if (
$_POST['code'] != $_SESSION['code'] ) {
echo
'code de vérification incorrect !';
return;
}

Attention, les bots publicitaires les plus perfectionnés parviennent maintenant à lire des codes simples comme celui-ci.

Améliorations possibles :
- code avec lettres
- utiliser une image avec du bruit (noise)
- déformation des lettres (rotation GD...)


RE: [GD] Code-image anti-bot (simple) - X-ZoD - 18-01-2007

tres interessant
cela pose til un probleme que je recupere se script en ton nom ain de le mettre sur mon sit d'aide ?