A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa

Um captcha simples pra caramba

Qui

18

Set

2008


20:56

(13 votos, média 3.46 de 5) 


Nível Intermediário

Este é um pequeno tutorial de como criar um CAPTCHA em PHP que, como já diz o título, é simples pra caramba.

Este CAPTCHA pode ser integrado em qualquer página ou formulário, como também pode ser inserido em componentes e módulos Joomla. Para criar este CAPTCHA usaremos a linguagem PHP. Veja o código:

O resultado é o seguinte:

  • Captcha apenas com dígitos:
  • Captcha com letras e números:

O código

Na linha 11 foi usada a função mt_rand() para obter um número randômico na faixa de 10000 a 99999. Os cinco dígitos deste número, armazenado na variável $seccode, serão utilizados como texto do captcha.

As linhas de 13 a 18 estão bloqueadas e servem apenas para mostrar como obter um texto randômico constituído por letras e números. Utilize o da sua escolha, mas apenas um deles.

A seguir vamos criar uma imagem do tipo PNG. Na linha 21 informa-se que a página conterá um gráfico deste tipo indicando o header.

Na linha 22 criamos uma imagem com a função imagecreate(), cujos parâmetros são a largura e a altura da imagem em pixels. Caso esta função falhe, o script é abortado e a mensagem "Erro ao criar imagem" é mostrada. Esta imagem é como se fosse uma tela em branco à qual podemos adicionar linhas e caracteres e à qual também podemos atribuir propriedades de cor. As propriedades de cor são definidas com a função imagecolorallocate().

A primeira cor definida é a cor de fundo. Na linha 24 definimos esta cor em RGB de 255, 244 e 234 (a cor de fundo deste parágrafo).

A cor da fonte é laranja, definido com RGB 255, 128, 0.

A cor das linhas é salmão, RGB 255, 200, 150.

A cor das bordas é a mesma cor da fonte. Uma vez definidas as cores podemos começar a criar as linhas. Para criar as linhas verticais usamos um loop que chama a função imageline(). Estas linhas são desenhadas em intervalos de 10 pixels. Os parâmetros são: a tela da imagem que já foi criada ($im), início da linha ($x=10, 20, etc e y=0), o fim da linha ($x=10, 20, etc e y=50) e a cor da linha.

Na linha de código 38 desenhamos uma linha horizontal que passa bem no meio da imagem e nas linhas 41 a 44 desenhamos a borda.

Agora só falta colocar o texto no captcha. Isto é feito usando a função imagestring() com os parâmetros: nossa imagem $im, o tamanho da fonte (pode ir de 1 a 5), a posição x na área da imagem, a posição y na área da imagem e a cor.

Neste ponto a imagem está pronta. Para colocá-la na tela usamos a função imagepng() dando como parâmetro a imagem.

Como a imagem criada na memória já foi apresentada na tela, não há motivo para continuar guardada. É sempre bom liberar a memória com a função imagedestroy().

Finalmentes

É isto aí, pessoal, taí uma imagem "fabricada" via programação. Podemos guardar o texto do captcha usando o expediente da session ou de cookies se quisermos recuperá-lo para uma comparação posterior.

Espero que tenham gostado do tuto.

Abraço da vó vovo

Вадим Логофет семьятренога купитьфото никос обзор недорогихtranslate frenchearnforex.combroker mfx

Informações adicionais