Gerando um Captcha


Exemplo:



html:

 

	
captcha.php

 
session_name('CAPTCHA');
session_start();

$alphanum  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

$codigoCaptcha = substr(md5(str_shuffle($alphanum)) ,0,5);

//Criando a imagem usando o fundo escolhido.
$imagemCaptcha = imagecreatefrompng("captcha/captcha.png");

$fonteCaptcha = imageloadfont("captcha/anonymous.gdf");

$corCaptcha = imagecolorallocate($imagemCaptcha,0,0,0);

// Escrevendo o código gerado na imagem...
imagestring($imagemCaptcha,$fonteCaptcha,15,5,$codigoCaptcha,$corCaptcha);

// Vamos botar o código gerado na sessão com MD5
$_SESSION['captcha'] = $codigoCaptcha;

// Vamos mandar alguns headers para o browser não cacher a imagem
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: image/png");

//Enviando a imagem
imagepng($imagemCaptcha);

// Liberando memoria
imagedestroy($imagemCaptcha);
php para validar o captcha digitado:

 
// o arquivo captcha.php cria uma sessão especifica
// para poder salvar o captcha gerado.
// Então temos que ler a mesma sessão

session_name('CAPTCHA');
session_start();

if ($_SESSION['captcha'] == $_POST['captcha'])
	echo 'OK';

Baixe os arquivos captcha.png e anonymous.gdf aqui.




Comentários

Copyright © 2018 Anderson Bravo
www.andersonbravo.com.br
anderson@andersonbravo.com.br