Anti-flood par un code image

Soyez le premier à donner votre avis sur cette source.

Vue 7 748 fois - Téléchargée 727 fois

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

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2006

Voir aussi le script www.cryptographp.com qui gère tout ca !
Messages postés
60
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
18 août 2006

Il faut décommenter la ligne extension:php_gd2.dll. Moi ca faiait pareil avec WAMP Server et maintenant ca marche.
a+
Messages postés
32
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
5 juillet 2006

il faut activé la GD je crois
Messages postés
1
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
1 septembre 2004

Que fau-il changer dans php.ini pour que cela marche??
Messages postés
32
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
5 juillet 2006

Nix a envoyé une lettre d'info dissant que suite a des problème

""Il se peut néanmoins que certaines captures, avatars et zip aient été touché donc si vous remarqué un problème avec les zip de vos sources, les photos dans votre profil ou bien les captures que vous avez envoyé avec vos sources, n'hésitez pas à les réenvoyer en mettant à jour sur le site.""

c'est ce que je vien de faire....tu peux réesseiller...sinon c'est peut-être relliera EasyPHP-1.7 ... on m'a dit que de nombreuse options étais vérouiller sur la configuration par défaut...regarde ça.....moi je vien d'esseiler avec EasyPHP1-7 et effectivement ca affiche un X rouge :(
Afficher les 11 commentaires

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.