Formulaire avec captcha en PHP

Nous avons tous rencontré la validation captcha dans des formulaires en ligne. Généralement, les captcha sont utilisés pour vérifier si vous êtes un humain ou un robot. Ces images captcha contiennent du texte lisible par un humain et pouvant être écrit dans le champ de saisie captcha pour confirmer que cet utilisateur est un humain et non un robot.
 
 
Il existe des plugins tiers prêts à l’emploi disponibles sur Internet, tels que ReCaptcha. Ce tutoriel a pour objectif de partager les connaissances relatives au fonctionnement de captcha et à la création de notre propre captcha personnalisé.

Note: Assurez-vous que la bibliothèque GD (Graphics Draw) est installée sur votre hôte. La plupart des hébergeurs l’ont déjà. S’il n’est pas installée, vous pouvez l’installer, en suivant ces instructions ou demandez à votre hébergeur Web de l’installer.

Étapes pour créer un Captcha en PHP :

  1. Étape 1: Créer un fichier index.html
  2. Étape 2: Créer un fichier captcha.php
  3. Étape 3: Créer un fichier validate.php
1. Créez le fichier index.html

Tout d’abord, nous allons créer un fichier d’index, dans ce fichier, nous allons créer un formulaire html de captcha. Après la soumission du formulaire de captcha, le code captcha entré sera validé avec le code captcha généré. Si les deux sont identiques, un message de succès apparaîtra sinon un message d’échec.

Maintenant, créez la page index.html et copiez-collez-y le formulaire captcha html ci-dessous.

<html>
	<head>
		<title>Formulaire avec captcha en PHP</title>
	</head>
	<body>
		<form action="validate.php" method="post">
		<table>
		<tr>
			<td>
				<label>Entrer le texte dans l'image</label>
				<input name="captcha" type="text">
				<img src="captcha.php" style="vertical-align: middle;"/>
			</td>
		</tr>
		<tr>
			<td><input name="submit" type="submit" value="Submit"></td>
		</tr>
		</table>
		</form>
	</body>
</html>

 
 

2. Créer le fichier captcha.php

Le code PHP pour générer une image avec un code aléatoire.

<?php
	 session_start();
	 $code=rand(1000,9999);
	 $_SESSION["code"]=$code;
	 $image = imagecreatetruecolor(50, 24);
	 $background = imagecolorallocate($image, 245, 73, 73); 
	 $forground = imagecolorallocate($image, 255, 255, 255);
	 imagefill($image, 0, 0, $background);
	 imagestring($image, 5, 5, 5,  $code, $forground);
	header("Cache-Control: no-cache, must-revalidate");
	header('Content-type: image/png');
	imagepng($image);
	imagedestroy($image);
?>

 

3. Créer le script de validation validate.php

Le code PHP pour valider le captcha.

<?php
	session_start();
	if(isset($_POST["captcha"])&&$_POST["captcha"]!=""&&$_SESSION["code"]==$_POST["captcha"])
	{
		$status = "<p style='color:#FFFFFF; font-size:20px'>
		<span style='background-color:#46ab4a;'>Votre code captcha est correct.</span></p>"; 
	}else{
		$status = "<p style='color:#FFFFFF; font-size:20px'>
		<span style='background-color:#FF0000;'>Le code captcha entré ne correspond pas! Veuillez réessayer.</span></p>";
	}
	echo $status;
?>
Télécharger le code source en cliquant ici.

 
Générateur de code barre en PHP

3 réflexions sur “Formulaire avec captcha en PHP

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *