Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CAPTCHA WARRIOR 1.0.1: LE SYSTEME DE CAPTCHA TOTALEMENT ADMINISTRABLE VIA LA BACK_OFFICE


Information sur la source



Description





Prérequis

PHP

Bibliothèque GD ( PHP 4.3.2 ou Ultérieur) Pour laide sur l'installtion de cette bibliothèque GD cliquer ici 

Un formulaire HTML ou PHP

Une plateforme de déploiement d'applications php (serveur php)

Aucune connexion MYSQL necessaire.



Installation

La procedure d'installation de ce système de captcha sur vos formulaire est tres facile et ne prendra pas plus de 5 minutes de votre temps. Notre routine d'installation a été developpée sur la base de l'esprit d'un noviste afin de nous assurer de la simplicité de mise en place de l'application.

Decompresser l'archive ZIP.

Une fois vos fichiers dezippés, vous devez maintenant les uploader sur votre serveur dans le même repertoire que le fichier sur lequel se trouve le formulaire à proteger



IMPORTANT !:-

ce titre a-t-il retenu votre attention? Bien! C'est le but recherché! Lisez ce qui suit SVP...

Vous devez être sûre à 100% que les fichiers config.php, captcha.php, captchalib.php, check.php et le sous dossier admin existent et sont dans le même dossier que votre formulaire.

Attribuer les droits de lecture/ecriture au fichier config.php , ce fichier se charge de receuillir et d'inclure vos preferences lors de l'execution du script, il necessite donc d'être accessible en lecture et en ecriture. Pour ce faire, faites un clic droit dessus et selectionner Proprietés à vous de jouer maintenant.



Ouvrez la page d'administration dans la fenêtre de votre navigateur: .. /admin/admin.php (i.e http://nom_de_votre_serveur.com/chemin-du_dossier-contenat-le-formulaire/admin/admin.php)

Vous devriez appercevoir une zone d'autentification, dont voici les parametres: Identifiant : admin Mot de passe: admin

Entre l'URL du fichier sur lequel se trouve le formulaire à proteger dans le champ "URL du Formulaire" , le premier champ de la page d'administration, ensuite vous devez modifier les parametres de connexion de l'administrateur en definissant un nouvel identifiant et un nouveau mot de passe.

Maintenant ouvrez le formulaire à proteger, inserer le code HTML suivant quelque part entre les balises <form> et </form>



Entrer le code ci-dessous: <input type="text" name="pfw_security_code" size="20"><p><img border="0" src="captcha.php" ></p>



le code HTML ci-dessus doit generer l'image du captcha et le champ de texte dans lequel les visiteurs saisiront le code de securité pour verification du captcha.

Ouvrir le fichier destiné à recueillir et a traiter le variables du formulaire , son nom devrait être mentionné dans le parametre "action" de la balise <form> , inserer ce bout de code PHP tout au debut du fichier juste apres "<?php" ou apres la validation du formulaire( utilisateur experimenté)





require_once("check.php");

Ouvrez maintenant votre formulaire dans le navigateur, Vous devriez appercevoir l'image du captcha.
 

Source

  • <?php
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • /// ///
  • /// systeme de protection des formulaires via un captcha ///
  • /// ///
  • /// Les remarques sont les bienvenues ///
  • /// ///
  • /// Developpé par Alfred Timagni T. SITEWEB http://www.bbsecurit.com ///
  • /// copyright 2007-2008 Tchalftechnology, Inc ///
  • /// ///
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • require_once("config.php");
  • error_reporting(E_ALL );
  • // caracteres à utiliser dans le captcha
  • function Get_Text()
  • {
  • global $text_length;
  • $letters = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G",
  • "h","H","i","I","j","J","k",
  • "K","l","L","m","M","n","N","o","O","p","P","q","Q","r",
  • "R","s","S","t","T","u","U","v",
  • "V","w","W","x","X","y","Y","z","Z","1","2","3","4","5",
  • "6","7","8","9");
  • mt_srand((double)microtime()*1000000);
  • $txt = "";
  • //$rand_keys = array_rand($letters, $text_length);
  • //foreach($rand_keys as $key)
  • // {
  • // $txt .= $letters[$key];
  • // }
  • shuffle($letters);
  • for($i=0;$i<$text_length;$i++)
  • {
  • $key = rand(0,count($letters)-1);
  • $txt .= $letters[$key];
  • }
  • return $txt;
  • }
  • function create_image()
  • {
  • global $width,$hight,$text_length,$border;
  • $im = imagecreate($width,$hight);
  • $bgc = imagecolorallocate($im, rand(235,255), rand(235,255),rand(235,255));
  • $tc = imagecolorallocate($im, 0, 0, 0);
  • imagefill($im,0,0,$tc);
  • imagefilledrectangle($im,$border,$border,$width-$border,$hight-$border,$bgc);
  • return $im;
  • }
  • function draw_string($txt,$im)
  • {
  • global $hight,$width,$font,$text_length;
  • $space1 = $width/($text_length+1); //space between characters
  • $space2 = ($width - $space1)/3 ; //space between lines
  • $center = $hight/2;
  • for($f=0;$f<3;$f++)
  • {
  • $y1 = $center/2;
  • $y2 = 1.5*$center;
  • $x1 = ($space1/2) + ($f * $space2);
  • $x2 = ($space1/2) + (($f +1) * $space2);
  • // echo "$x1,$x2 + $y1,$y2 <br>";
  • for($k=0;$k<2;$k++)
  • {
  • $lc = imagecolorallocate($im,rand(0,200), rand(0,200), rand(0,200));
  • imageline($im,rand($x1,$x2),rand($y1,$y2),rand($x1,$x2),rand($y1,$y2),$lc);
  • }
  • }
  • for($i=0;$i<$text_length;$i++)
  • {
  • $txtc = imagecolorallocate($im,rand(0,160), rand(0,160), rand(0,160));
  • $x = ($space1+($i*$space1)); //x coordinate of each character
  • imagestring($im,$font,$x,rand($center-($center/2),$center),$txt[$i],$txtc);
  • }
  • }
  • ?><?php
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • /// ///
  • /// systeme de protection des formulaires via un captcha ///
  • /// ///
  • /// Les remarques sont les bienvenues ///
  • /// ///
  • /// Developpé par Alfred Timagni T. SITEWEB http://www.bbsecurit.com ///
  • /// copyright 2007-2008 Tchalftechnology, Inc ///
  • /// ///
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • session_start();
  • error_reporting(E_ALL ^ E_NOTICE);
  • require_once('captchalib.php');
  • header('Content-type: image/png');
  • $str = Get_Text();
  • $im = create_image();
  • draw_string($str,$im);
  • imagepng($im);
  • if($CaseSenstive==true)
  • {
  • $_SESSION['pfw_text']=md5($str);
  • }
  • else
  • {
  • $str = strtolower($str);
  • $_SESSION['pfw_text']=md5($str);
  • }
  • ?><?php
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • /// ///
  • /// systeme de protection des formulaires via un captcha ///
  • /// ///
  • /// Les remarques sont les bienvenues ///
  • /// ///
  • /// Developpé par Alfred Timagni T. SITEWEB http://www.bbsecurit.com ///
  • /// copyright 2007-2008 Tchalftechnology, Inc ///
  • /// ///
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • session_start();
  • error_reporting(E_ALL ^ E_NOTICE);
  • require_once('config.php');
  • if(isset($_GET['pfw_security_code']))
  • {
  • $code = $_GET['pfw_security_code'];
  • }
  • else
  • {
  • $code = $_POST['pfw_security_code'];
  • }
  • if(!$CaseSenstive)
  • {
  • $code = strtolower($code);
  • }
  • if(md5($code)==$_SESSION['pfw_text']) $comp = 1;
  • if($comp!=1)
  • {
  • switch($error_display_mode)
  • {
  • case 0:
  • die("<p align='center'><font face='Arial' size='3' color='#FF0000'>$error</font></p>");
  • break;
  • case 1:
  • header("location: $error_page");
  • break;
  • case 2:
  • $translation = implode('',@file($form));
  • $translation = str_replace("<!-- ici les messages d'erreur -->","<p align='center'><font face='Arial' size='3' color='#FF0000'>$error</font></p>",$translation);
  • header("Cache-control: public");
  • die($translation);
  • break;
  • }
  • }
  • if($redirect)
  • {
  • header("location: $success_page");
  • }
  • ?>
<?php
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///                                                                     ///
///        systeme de protection des formulaires via un captcha         ///
///                                                                     ///
///               Les remarques sont les bienvenues                     ///
///                                                                     ///
/// Developpé par Alfred Timagni T.   SITEWEB http://www.bbsecurit.com  ///
///       copyright 2007-2008 Tchalftechnology, Inc                     ///
///                                                                     ///
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
require_once("config.php");
error_reporting(E_ALL );
// caracteres à utiliser dans le captcha
function Get_Text()
{
global $text_length;
	$letters =  array("a","A","b","B","c","C","d","D","e","E","f","F","g","G",
"h","H","i","I","j","J","k",
"K","l","L","m","M","n","N","o","O","p","P","q","Q","r",
"R","s","S","t","T","u","U","v",
"V","w","W","x","X","y","Y","z","Z","1","2","3","4","5",
"6","7","8","9");
mt_srand((double)microtime()*1000000);
 $txt = "";
 //$rand_keys = array_rand($letters, $text_length);
 //foreach($rand_keys as $key)
// {
 // $txt .= $letters[$key];
// }
shuffle($letters);
for($i=0;$i<$text_length;$i++)
{
  $key = rand(0,count($letters)-1);
  $txt .= $letters[$key];	
}
return $txt;
}

function create_image()
{
    global $width,$hight,$text_length,$border;
    $im = imagecreate($width,$hight);
    $bgc = imagecolorallocate($im, rand(235,255), rand(235,255),rand(235,255));
    $tc  = imagecolorallocate($im, 0, 0, 0);
    imagefill($im,0,0,$tc);
    imagefilledrectangle($im,$border,$border,$width-$border,$hight-$border,$bgc);
    return $im;

}

function draw_string($txt,$im)
{
   global $hight,$width,$font,$text_length;
   $space1 = $width/($text_length+1);   //space between characters
   $space2 = ($width - $space1)/3  ;   //space between lines
   $center = $hight/2;


   for($f=0;$f<3;$f++)
   {
   	$y1 =  $center/2;
  	$y2 =  1.5*$center;
  	$x1 = ($space1/2) + ($f * $space2);
  	$x2 = ($space1/2) + (($f +1) * $space2);
  	// echo "$x1,$x2 + $y1,$y2 <br>";
     for($k=0;$k<2;$k++)
	  {
           $lc =  imagecolorallocate($im,rand(0,200), rand(0,200), rand(0,200));
           imageline($im,rand($x1,$x2),rand($y1,$y2),rand($x1,$x2),rand($y1,$y2),$lc);
      }
    }

	for($i=0;$i<$text_length;$i++)
	{
	 $txtc =  imagecolorallocate($im,rand(0,160), rand(0,160), rand(0,160));
	 $x = ($space1+($i*$space1)); //x  coordinate of each character
	 
	 imagestring($im,$font,$x,rand($center-($center/2),$center),$txt[$i],$txtc);
	}

}


?><?php
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///                                                                     ///
///        systeme de protection des formulaires via un captcha         ///
///                                                                     ///
///               Les remarques sont les bienvenues                     ///
///                                                                     ///
/// Developpé par Alfred Timagni T.   SITEWEB http://www.bbsecurit.com  ///
///       copyright 2007-2008 Tchalftechnology, Inc                     ///
///                                                                     ///
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
session_start();
error_reporting(E_ALL ^ E_NOTICE);
require_once('captchalib.php');
header('Content-type: image/png');

$str = Get_Text();
$im = create_image();
draw_string($str,$im);
imagepng($im);
if($CaseSenstive==true)
{
$_SESSION['pfw_text']=md5($str);
}
else
{
$str = strtolower($str);
$_SESSION['pfw_text']=md5($str);
}
?><?php
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///                                                                     ///
///        systeme de protection des formulaires via un captcha         ///
///                                                                     ///
///               Les remarques sont les bienvenues                     ///
///                                                                     ///
/// Developpé par Alfred Timagni T.   SITEWEB http://www.bbsecurit.com  ///
///       copyright 2007-2008 Tchalftechnology, Inc                     ///
///                                                                     ///
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
session_start();
error_reporting(E_ALL ^ E_NOTICE);
require_once('config.php');
if(isset($_GET['pfw_security_code']))
{
$code = $_GET['pfw_security_code'];
}
else
{
$code = $_POST['pfw_security_code'];
}
if(!$CaseSenstive)
{
	$code = strtolower($code);
}
if(md5($code)==$_SESSION['pfw_text']) $comp = 1;

if($comp!=1)
{
   switch($error_display_mode)
   {
   	case 0:		
    die("<p align='center'><font face='Arial' size='3' color='#FF0000'>$error</font></p>");
    break;

    case 1:
    header("location: $error_page");
    break;

    case 2:
	
    $translation = implode('',@file($form));
    $translation = str_replace("<!-- ici les messages d'erreur -->","<p align='center'><font face='Arial' size='3' color='#FF0000'>$error</font></p>",$translation);		
    header("Cache-control: public");
    die($translation);
     break;

   }

}
if($redirect)
{
	header("location: $success_page");
}
?>

Conclusion

best enjoy!
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de tex73 le 10/07/2008 02:14:28

deposez vos commentaires svp

signaler à un administrateur
Commentaire de coucou747 le 10/07/2008 15:06:03

euh... sauf erreur de ma part, ton captcha peut se casser avec au moins 95% de reussite...

http://eelte.megami.fr ici tu peux trouver une liste de captchas que j'ai casses, et un captcha que j'ai fait, t'as aussi un tuto avec une explication sur les faiblesses des captchas

signaler à un administrateur
Commentaire de coucou747 le 18/07/2008 02:25:44

aucun commentaire ?

signaler à un administrateur
Commentaire de beubass le 04/12/2008 14:50:20

franchement coucou, peut etre que ton systèeme est fiable a 100%, c'est super, mais moi a ce moment la, je peu t'en faire un systeme fiable a 100%.
Je place un champ caché dans lequel je met une valeur, et apres je demande de deviner le texte.
sincerement, c'est pas accessible ton truc, on voit rien, on est obligé de généré 4 fois l'image pour avoir un texte qui peut etre décripté a l'oeil.

signaler à un administrateur
Commentaire de beubass le 04/12/2008 14:59:25

dsl, je me suis trompé de discution.
sorry

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

renvoyer données dans select apres traitement [ par steinia ] bonjour ou bonsoir, Alors en fait, moi j'ai un formulaire qui va appeler un code .php pour faire des traitements, mais j'aimerais pouvoir revenir sur garder les données lors d'un changement de pages [ par etrevilly ] Lut tout le monde,Bon en fait il faut que je fasse une appli (php-javascript) composée d'un formulaire sur plusieurs pages (pas le choix). Et forcémen Validation Formulaire [ par kiboumz ] Bonjour, J'ai cr&#233;e un formulaire duquel j'envoie des donn&#233;es vers une base de donn&#233;es, cependant j'aimerais pouvoir valider mes donn& Problème d'upload de (gros?) fichiers [ par hvb ] Bon attention, ma demande est assez compliqu&#233;e... je m'explique rapidement :Je fais une base de connaissance pour ma societ&#233;, et dans le for Urgent , pb avec formulaire [ par ninjafury ] Salut &#224; tous,qui peut m'expliquer mon pb, je souhaite mettre des donn&#233;es dans un champ texte &#224; partir d'une base donn&#233;es, voila ma données formulaire [ par magraf ] Salut &#224; tous, quelqun pourrais me dire comment on fait conserver certainne donn&#233;es dans un formulaire apr&#233;s validation sur lui m&#234;m Récup 2 données d'un formulaire --- à l'aide!!!!!! [ par ladafan ] Bonjour tout le monde,J'ai un gros probleme de recup de mes donn&#233;es sur un formulaire...Je voudrai qu'elles me soient envoy&#233;es sur mail...Vo Récupérer les données d'un formulaire envoyé sans bouton submit [ par b_medamine ] Bonjour &#224; tous Je veux envoyer un formulaire sans boutons du tout...&nbsp; voil&#224; la situation : j'ai deux champs ( login / pass) et je ve pseudos frames et récuperation de données dans un formulaire [ par jimmypage64 ] Bonjour !! j'utilise les pseudos frames dans mon site.. j'ai donc une page index avec un menu, une entete et dans la partie centrale de ma page j'app Requêtes entre un formulaire et une base de données...? [ par simsgodzilla ] J'ai cr&#233;e un formulaire de recherche bibliographique sous dreamweaver et je poss&#232;de une base de donn&#233;es sous mysql(easyphp).Mais je ne


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.