Ir para conteúdo

Captcha


GM Crazy

Posts Recomendados

Criar sistema de - Captcha

 

CAPTCHA é um acrônimo da expressão em língua inglesa "Completely Automated Public Turing test to tell Computers and Humans Apart" que pode ser traduzida como "Teste de Turing público e completamente automático para distinguir computadores e humanos.

 

Esta ferramenta tem o objetivo de determinar, mediante uma ou mais perguntas, se o utilizador é um ser humano e não um computador ou, mais precisamente, um bot (robôs que executam tarefas pré-programadas). O teste captcha mais comum é o que solicita que o usuário escreva uma série de letras ou números que aparecem num quadro, geralmente um pouco distorcidos ou ofuscados para evitar o reconhecimento por máquinas.

 

A biblioteca GD do PHP deve esta ativada

 

1º crie o arquivo gera.php com o seguinte conteúdo:

 

<?php

$largura = 180;

$altura = 30;

$imagem = imagecreate($largura,$altura); // cria uma imagem

$letras = array('0','1','2','3','4','5','6','7','8','9'); // Coloque aqui o conteudo que deseja para aparecer na imagem

$tam_letras = count($letras)-1;

/*Fim possives letras*/

/*Cores da imagem*/

$cinza = imagecolorallocate($imagem,0xF8,0xF8,0xF8);

$cinza_escuro = imagecolorallocate($imagem,0xCC,0xCC,0xCC);

$vermelho = imagecolorallocate($imagem,0xFF,0x00,0x00);

$azul = imagecolorallocate($imagem,0x0F,0x93,0xFF);

$verde = imagecolorallocate($imagem,0x00,0x66,0x00);

$rosa = imagecolorallocate($imagem,0xFF,0x1A,0x98);

$preto = imagecolorallocate($imagem,0x00,0x00,0x00);

$marrom = imagecolorallocate($imagem,0xDC,0x91,0x3D);

$laranja = imagecolorallocate($imagem,0xFF,0x8C,0x24);

$cores = array($vermelho,$azul,$verde,$rosa,$preto,

$marrom,$laranja);

$tam_cores = count($cores)-1;

/*Fim das cores*/

 

/*Escrevendo linhas de fundo*/

$nro_linhas = 20;

for($i=0;$i<$nro_linhas;$i++){

$x1 = rand(0,$largura);

$x2 = rand(0,$largura);

$y1 = rand(0,$altura);

$y2 = rand(0,$altura);

imageline($imagem,$x1,$y1,$x2,$y2,$cinza_escuro);

}

/*Fim linhas de fundo*/

 

/*Escrevendo arcos de fundo*/

$nro_arcos = 20;

for($i=0;$i<$nro_arcos;$i++){

$cx = rand(0,$largura);

$w = rand(0,$largura);

$cy = rand(0,$altura);

$h = rand(0,$altura);

$s = rand(0,360);

$e = rand(0,360);

imagearc($imagem,$cx,$cy,$w,$h,$s,$e,$cinza_escuro);

}

/*Fim arcos de fundo*/

 

/*Escrevendo as Letras na imagem*/

$palavra = '';

$xPos = 0;

for($i=0;$i<6;$i++){

$xPos += rand(10,25);

$yPos = rand(10,15);

$j = rand(0,$tam_cores);

$k = rand(0,$tam_letras);

$palavra .= $letras[$k];

imagestring($imagem, 5, $xPos, $yPos, $letras[$k], $cores[$j]);

}

/*fim escrevendo letras na imagem*/

session_name('captcha');

session_start();

$_SESSION['palavra'] = $palavra;

header("Content-type: image/png");

imagepng($imagem);

imagedestroy($imagem);

?>

 

Agora vamos criar, no mesmo diretório, captcha.php:

 

<?php

 

session_name('captcha');

session_start();

 

?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Captcha</title>

<body>

 

<?php

 

if(isset($_POST['minhaPalavra'])){

 

if($_SESSION['palavra'] == $_POST['minhaPalavra'])

 

echo 'ok';

 

else

 

echo 'errado';

 

}

 

?>

 

<form action="checa.php" method="post">

 

<img src="gera.php">

 

<br>Verificação: <input type="text" name="minhaPalavra">

 

<input type="submit" name="ok" value="Ok">

 

</form>

 

</body>

</html>

 

o resultado será assim:

 

capchbw5.jpg

Link para o comentário
Compartilhar em outros sites

Que massa, isso é aqueles negócios que tem em cadastro x]

Sempre quis saber isso mas não sabia o nome vou dar uma olhada e tentar implementar aqui x]

 

 

 

Abraços HeNnET B)\\

Link para o comentário
Compartilhar em outros sites

  • 2 years later...
  • 4 weeks later...

[quote<form action="checa.php" method="post">

 

 

Não estaria faltando o script desse checa.php ?

 

se for posta ai pois eu fiz td o que vc flo e deu erro aki

Link para o comentário
Compartilhar em outros sites

  • 3 months later...

para terminar com o problema basta ir em:

 

 

C:\xampp\htdocs\config

 

abra o config.php

 

procure pela linha:

 

['verify_code']

 

 

do lado tara 1 coloque 0 pronto.

Link para o comentário
Compartilhar em outros sites

para terminar com o problema basta ir em:

 

 

C:\xampp\htdocs\config

 

abra o config.php

 

procure pela linha:

 

['verify_code']

 

 

do lado tara 1 coloque 0 pronto.

Cara To Achando nâo o meu aquita escrito config-and-functions não achei n =/

 

Valeu mano eu Achei tava Na Pasta COnfig o.O:D Te amo se me ajuda de mais

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...