Um grande problema hoje é spam. A melhor maneira de combater o spam é de Captcha. Captcha faz a diferença entre um computador e um ser humano. Os computadores não podem ler o texto em uma imagem e é por isso que nós vamos usar uma foto também.
Vamos começar criando o captcha.php arquivo. Este arquivo irá criar uma foto com um texto escrito por ele
header ('Content-type: image /jpeg.
'); //Uma imagem JPEG será transmitido $ width = 60; //Largura da imagem $ height = 24; //Altura da imagem $ my_image = imagecreatetruecolor ($ largura, altura $); //Criar truecolor imagem imagefill ($ my_image, 0, 0, 0xFFFFFF); //Fundo branco
Até agora conseguimos criar uma imagem que tem um fundo branco, 60 pixels de largura e 24 pixels de altura.
Vamos adicionar algumas distorções:
for ($ c = 0; $ c $ x = rand (0, $ width-1); $ y = rand (0, $ 1 em altura); imagesetpixel ($ my_image , $ x, $ y, 0x000000);}
Nós inserido 40 pixels pretos na imagem Estes pixels terá diferentes coordonates cada vez que uma imagem é carregada
Vamos escrever o texto.. o quadro:..
$ x = rand (1,10); //X coordonate do canto superior esquerdo $ y = rand (1,10); //Y coordonate do canto superior esquerdo $ rand_string = rand (10000,99999); //Obter um número entre 10000 e 99999 imagestring ($ my_image, 5, $ x, $ y, $ rand_string, 0x000000); //Escreve o número obtido anteriormente na imagem
Vamos salvar a seqüência de caracteres escritos na imagem em um cookie. Vamos ler este cookie quando um formulário é submetido para comparar os dados.
setcookie ("cookie-captcha", (md5 ($ rand_string)) , time () + 3600, "/"); imagejpeg ($ my_image); //Criar a imagedestroy imagem jpeg ($ my_image); //Eliminar a imagem jpeg
Neste exemplo o nome do cookie é bolinho -captcha, seu conteúdo será o valor codificado md5 da seqüência aleatória obtido anteriormente (o número escrito na imagem), será válido por uma hora em todo o seu domínio.
A imagem é excluída (imagedestroy ) para economizar espaço no servidor
O arquivo captcha.php completo será:
header ('Content-type: image /jpeg.
'); $ width = 60; $ height = 24; $ my_image = imagecreatetruecolor ($ largura, altura $); imagefill ($ my_image, 0, 0, 0xFFFFFF); for ($ c = 0; $ c $ x = rand (0, $ width-1); $ y = rand (0, $ altura-1); imagesetpixel ($ my_image, $ x, $ y, 0x000000);} $ x = rand (1,10); $ y = rand (1,10); $ rand_string = rand (10000,99999); imagestring ($ my_image, 5, $ x, $ y, $ rand_string, 0x000000); setcookie ("cookie-captcha", (md5 ($ rand_string)), time () + 3600, "/"); imagejpeg ($ my_image); imagedestroy ($ my_image);?>
NET HTML Editor de Controle Para Window…