Pessoal, boa tarde.
Para quem procura uma validação com captcha em php, segue uma que utilizo muito em meus desenvolvimentos:
Caso você se interesse mais pela biblioteca de imagens do php leia mais em:
http://www.php.net/manual/pt_BR/refs.utilspec.image.php
Nesta página há muito mais sobre processamento e geração de imagens, a biblioteca é nativa do PHP, no entanto, é bom verificar a disponibilidade das funções para sua versão PHP.
Após esta dica, é só usar a criatividade para fazer a validação que quiser em seus formulários html.
Fiquem com Deus e sucesso a todooOOOS!
Para quem procura uma validação com captcha em php, segue uma que utilizo muito em meus desenvolvimentos:
Caso você se interesse mais pela biblioteca de imagens do php leia mais em:
http://www.php.net/manual/pt_BR/refs.utilspec.image.php
Nesta página há muito mais sobre processamento e geração de imagens, a biblioteca é nativa do PHP, no entanto, é bom verificar a disponibilidade das funções para sua versão PHP.
Após esta dica, é só usar a criatividade para fazer a validação que quiser em seus formulários html.
Fiquem com Deus e sucesso a todooOOOS!
# PARA A CRIAÇÃO DE UMA VALIDAÇÃO DE FORMULÁRIO COM CAPTCHA EM PHP
# DESENVOLVEREMOS DOIS ARQUIVOS:
# O PRIMEIRO É RESPONSÁVEL POR GERAR A IMAGEM (CAPTCHA)
# PRECISAREMOS DE UM TERCEIRO ARQUIVO DE FONT, O QUAL SERÁ USADO PARA ESCREVER O CAPTCHA
captcha.php
<?php
session_start();
# CRIA/DECLARA A IMAGEM DEFININDO LARGURA E ALTURA EM PIXELS
$image = imagecreate(200, 75);
# APLICA COR DE FUNDO À IMAGEM
$branco = imagecolorallocate($image, 255, 255, 255);
# CRIA UM ARRAY CONTENDO CÓDIGO DE CORES RGB PARA POSTERIORMENTE
# ATRIBUIRMOS A ELIPSES QUE DESENHAREMOS NA IMAGEM
$elipseCores = array
(
array(0,255,240),
array(255,40,0),
array(0,99,66),
array(0,99,255),
array(255,240,0)
);
# CRIA UM ARRAY CONTENDO CÓDIGO DE CORES RGB PARA POSTERIORMENTE
# ATRIBUIRMOS A LINHAS QUE DESENHAREMOS NA IMAGEM
$linhasCores = array
(
array(0,10,255),
array(55,100,0),
array(10,10,255),
array(100,0,55),
array(100,10,5),
array(0,1,5),
array(120,200,25),
array(0,0,0)
);
# EXIBINDO VARIAS ELIPSES NA IMAGEM
for($i=1;$i<=20;$i++)
{
$cor = $elipseCores[rand(0,4)];
$corElipse = imagecolorallocate($image, $cor[0], $cor[1], $cor[2]);
imagefilledellipse($image, rand(0,200), rand(10,100), rand(10,250), rand(0,70), $corElipse);
}
# EXIBINDO VARIAS LINHAS NA IMAGEM
for($i=1;$i<=10;$i++)
{
$cor = $linhasCores [rand(0,7)];
$corLinha = imagecolorallocate($image, $cor[0], $cor[1], $cor[2]);
imageline($image, rand(0,200), rand(0,75), rand(0,200), rand(0,75), $corLinha);
}
# IMAGEM PREPARADA! AGORA VAMOS ESCREVER O TEXTO DO CAPTCHA SOBRE ESTA IMAGEM
settype($captcha, 'string');
for($j=0;$j<=5;$j++)
{
$captcha .= $j%2 == 0 ? chr(rand(65,90)) : chr(rand(48,57));
}
$corTexto = imagecolorallocate($image, 0, 0, 0);
# GUARDAMOS O TEXTO SORTEADO EM UMA VARIÁVEL DE SESSÃO PARA VALIDAÇÃO FUTURA
$_SESSION['imgCaptcha'] = $captcha;
# ESCREVENDO TEXTO NA IMAGEM, ** AQUI UTILIZA O ARQUIVO DE FONT
for($j = 0 ; $j < strlen($captcha) ; $j++)
{
imagettftext($image, rand(26,42), rand(-10,10), ($j * 30)+16, rand(55,68), $corTexto, '../fontes/arial.ttf', $captcha[$j]);
}
# GERA A IMAGEM
imagepng($image);
# LIBERA A MEMORIA
imagedestroy($image);
?>
# O SEGUNDO ARQUIVO DESENVOLVIDO CONTÉM O FORMULARIO E FAZ SUA VALIDAÇÃO
formulario.php
<?php
if(isset($_POST['enviar']))
{
session_start();
if($_SESSION['imgCaptcha'] == strtoupper($_POST['captcha']))
print "Parabéns você digitou corretamente!";
else
print "A digitação não confere com os caracteres exibidos na imagem<br>Por favor, digite novamente";
}
?>
<html>
<head>
<title>
CAPTCHA COM PHP, por Dominus Farib
</title>
</head>
<body>
<form action="" method="post">
<h1>Digite os caracteres da imagem</h1>
<p><img alt="CAPTCHA" src="captha.php"> </p>
<p><input type="text" name="captcha"></p>
<p><input type="submit" name="enviar" value="VALIDAR"> </p>
</form>
</body>
</html>
Nenhum comentário:
Postar um comentário
Palavrões e comentários não agregadores de valores e conhecimentos serão descartados