Anti-flood par un code image

Description

Ce script est simple, il propose un code sous la forme d'une image brouillé dont la valeur doit être inscrite dans un formulaire pour déclancher une action. Vous devez placer "suport.php" et "code.php" dans un répertoire de votre choix, avec la police "ti83ppcb.ttf"disponible a ce lien ( http://takastiger.free.fr/test/Ti83ppcb.ttf ) . Vous devez aussi placer un répertoire nommé "cmp" contenant "cod.tig" qui doit être vide et un ".htaccess" contenant
<Limit GET POST>
order deny,allow
deny from ALL
</Limit>
Il servira à protéger le fichier "cod.tig" qui contient la valeur de l'image. Dans le ZIP j'ai placé en plus du script un système de messagerie interne, qui fonctionne avec les bases d'un livre d'or. (Comment'R 1.0 ) Il permet de laisser un message à l'intention d'un administrateur qui pourra lire ces messages avec une interface d'administration. L'envoi d'un message nécessite l'entrée d'un code image.

Source / Exemple :


---------------------suport.php------------------

<?php
//##########code d'identification############
for($x=0;$x<5;$x++){
$car = rand(0,9);
$texte= $car." ".$texte;
$tcryp= $car.$tcryp;
}
$tcryp = md5($tcryp);
setcookie("anti-flood", $tcryp);

$fich="cmp/cod.tig";
$fp=fopen("$fich","r+");
fseek($fp,0);
fputs($fp,$texte);
fclose($fp);

//###########################################
?>
<html>
<head>
</head>
<body>
<?php
//si code n'est pas vide
 if ($code != "") {
  $cod = $HTTP_COOKIE_VARS["anti-flood"];
  $code = md5($code);
  if ($code == $cod)
  {
//###########
//placer ici l'action à efectuer si le code est correct
echo"aucune action inscrite";
exit;
//###########
  }
  else{
  echo" mauvais code d'identification, vous n'avez peut-être pas bien lu le code ou vos \"cookies\" sont déactivés<br>
  revenez en arrière a ce lien et actualisez la page pour obtenir un nouveau code <A HREF=\"javascript:history.go(-1);\">Retour</a>";
  exit;}
  }
// ***********************
// Affichage du formulaire 
// ***********************
  print("<div aling=\"center\"> \n");
  print("<form method=\"POST\" action=\"suport.php\"> \n");
  print("<center> \n");
  print("<br> \n");
  print("<b>Code anti-flood</b> :&nbsp; \n");
  print("<input type=\"text\" name=\"code\" size=\"6\"> <img src=\"code.php\"> <br>recopiez ce code, si le code n'est pas lisible, actualisez la page pour obtenir un nouveau code<br>\n");
  print("<br><br> \n");
  print("<input type=\"submit\" value=\"Envoyer !\" name=\"B1\"> \n");
  print("</form> \n");
// #####################################################################################
?>
</body>
</html>

--------------------------------code.php------------------------------

<?PHP
 $rien = "          ";
 $fich="cmp/cod.tig"; /* nom du fichier */ 
 $fp=fopen("$fich","r+"); /* Ouverture du fichier en lecture/ecriture */ 
 $texte=fgets($fp,10); /* lecteur des 10 premiers caractères */ 
 fputs($fp,$rien); /* effacement de la valeur */ 
 fclose($fp);

    $img = imagecreate(120, 25);
    $font = "Ti83ppcb.ttf";
    imagefilledrectangle($img, 0, 0, 120, 25, imagecolorallocate($img, 200, 200, 200));
imagettftext($img, 20, 0, 5, 20, imagecolorallocate($img, 25, 25, 25), $font, $texte);
for($i=0;$i<200;$i++) {
    imagesetpixel($img, rand(0,120), rand(0,25), imagecolorallocate($img, 100, 100, 100));}
for($i=0;$i<150;$i++) {
    imagesetpixel($img, rand(0,120), rand(0,25), imagecolorallocate($img, 5, 5, 5));}
for($i=0;$i<150;$i++) {
    imagesetpixel($img, rand(0,120), rand(0,25), imagecolorallocate($img, 200, 200, 200));}
header("Content-type: image/jpg");
imagejpeg($img, '', 15);
imagedestroy($img);
?>

-------------------------------autre-------------------------------

il vous faut la police Ti83ppcb.ttf diponible a ce lien http://takastiger.free.fr/test/Ti83ppcb.ttf

il vous faut un répertoire "cmp" contenant le fichier "cod.tig" .... ce fichier doit être vide

il peut être utile de placé un ".htaccess" dans "cmp"

Conclusion :


Le script génère un code de 5 caractères qu'il envoie à "code.php" qui génère une image. L'image s'affiche avec un formulaire. La valeur du code est envoyée, cryptée, dans un cookie. L'utilisateur inscrit le code qu'il lit dans le formulaire et valide. Le script vérifie si le code correspond au cookie. Si oui, une action peut être déclanchée, sinon un message indique que le code a peut-être été mal lu ou que les cookies ne sont pas activés sur sa machine. Pour tout commentaire vous pouvez me contactez à http://fraggues.no-ip.com/tiger/suport.php vous remarquerez que c'est le système de messagerie interne dont j'ai parlé :) ou a Taka_s_tiger@lestigres.fr.st

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.