<?php
session_start();
/* se voce quiser que ele diferencie minúsculas de maiúsculas substitua isso
$resposta = strtolower($_POST["CAPTCHA"]) != strtolower($_SESSION["CAPTCHA"]) por isso
$resposta = $_POST["CAPTCHA"] != $_SESSION["CAPTCHA"]*/
if($_POST["CAPTCHA"]) $resposta = strtolower($_POST["CAPTCHA"]) != strtolower($_SESSION["CAPTCHA"])? "Você digitou CAPTCHA errado tente novamente" : "Você digito CAPTCHA corretamente";
$v = array("a","A","e","E","i","I","o","O","u","U");
$c = array("b","B","c","C","cr","CR","d","D","f","F","g","G","h","H","nh","NH","lh","LH","ch","CH","j","J","k","K","l","L","m","M","n","N","p","P","qu","QU","r","R","rr","RR","s","S","ss","SS","t","T","v","V","w","W","x","X","y","Y","z","Z","pr","PR","tr","TR");
$tamanho_palavra = rand(4,7); // defini minimo e o maximo de caracteres
$Caractere = 0;
// cria a palvra do CAPTCHA
while($Caractere < $tamanho_palavra){
$V = $v[rand(0,count($v)-1)];
$C = $c[rand(0,count($c)-1)];
$palavra .=$C.$V;
$Caractere = strlen($palavra);
}
$_SESSION["CAPTCHA"] = $palavra; // guardo a palavra gerada na sessão
// começo a criar a imagem //
$font = imageloadfont("fontes/lizze.gdf"); // carrego a fonte a ser usada
$Nome = "CAPTCHA.png"; // define o nome da imagem gerada
$imagem = ImageCreate(300,100); // define os tabanhos
$branco = ImageColorAllocate($imagem, 255, 79, 79); // cor do fundo
$w = 60; // define a largura do circulo
$h= 60; // define a altura do circulo
// faço os circulos para confundir os robos a função rand determina o minimo e o maximo de circulos
for($n=0;$n<rand(2,4);$n++)
{
// cor da linha do circulo aqui eu fiz uma seleção que de valores randomicos para gerar cores do tom vermelho a verde
$cordalinha = ImageColorAllocate($imagem, rand(10,255), rand(100,255), rand(0,100));
$i=0;
$x = rand(0,285);
$y = rand(0,85);
$quantos = rand(10,100);
for($i=0;$i<$quantos;$i++)
{
imagearc($imagem, $x, 20, $w-($i/5), $h-($i/5),rand(90,360),rand(90,360),$cordalinha);
imagearc($imagem, $x, 20, $w+($i/5), $h+($i/5), rand(90,360),rand(90,360), $cordalinha);
}
}
/// texto ///
$cordotexto = ImageColorAllocate($imagem, rand(39,0), rand(18,100), rand(55,255));
ImageString($imagem, $font, rand(20,55), rand(20,35), $palavra, $cordotexto);
// salva a imagem
ImagePNG($imagem, $Nome );
// limpa a memória
ImageDestroy($imagem);
// coloca a imagem no diretório
$destino = "./imagens/$Nome";
$copy = copy($Nome, $destino);
?>
<table width="304" height="100" bgcolor="#ff4f4f">
<tr>
<td>
<img style=" position:absolute; width:300px; height:100px; text-align:center; z-index:1" src="imagens/fundo.png" />
<img src="imagens/CAPTCHA.png" />
</td>
</tr>
<tr>
<td align="center">
digite o texto acima<br />
<form method="post">
<input type="text" size="30" name="CAPTCHA" /><input type="submit" value="Enviar" /><br />
<font size="-1">O programa não diferencia maiúsculas ou minusculas!</font>
</form>
</td>
</tr>
</table>
<?php
echo $resposta;
?>
Obs: Cria uma pasta chamada imagens no local onde o script for executado ou altere o local para onde a imagem deve ir.Veja este Exemplo abaixo:
download do exemplo
Para acompanhar todos os post relacionado a esse tema basta seguir esse link Criar captcha
Nenhum comentário:
Postar um comentário