|
[01/12]
:. Lançado FreeBSD 6.4, último da série 6.x (legacy) [01/12] :. Resumo do dia [01/12] :. MySQL 5.1.30 GA é publicado, mas ainda contém alguns bugs [01/12] :. Novas telas prometem autonomia de até 40 horas em notebooks [01/12] :. Hackers rodam Linux em um iPhone [01/12] :. Mais detalhes sobre a nova nomenclatura das placas GeForce [30/11] :. Windows 7 rodará DX10 na CPU, sem exigir aceleradora gráfica [28/11] :. Resumo do dia [28/11] :. Intel afirma: netbooks são bons só para uma horinha de uso [28/11] :. VIA inicia corte de custos, desligando divisão de SoCs [28/11] :. AMD demonstra 'Maui', plataforma home theater [27/11] :. KDE 4.2 beta 1 traz recursos antes removidos do KDE 4 [27/11] :. Resumo do dia [27/11] :. Inserindo facilmente fotos e vídeos em filmes [27/11] :. Nokia desenvolve sistema de automação residencial :. Mais noticias » |
Olá pessoal, depois de um longo tempo volto a publicar algumas coisas por aqui. E para este "retorno" resolvi escrever sobre uma coisa que é simples de fazer, é útil e o melhor de tudo: Ajuda a deixar nossos formulários html um pouco mais seguros. Estou falando da library GD. Bastante conhecida na web e amplamente utilizada para criação de thumbs, senhas de confirmação (em chats por exemplo), cadastro em determinados derviços, etc. Fatalmente você já passou por ela e hoje vamos conhecer o básico de seu funcionamento. Criaremos a famosa senha de confirmação e de quebra aprenderemos um pouco. Tendo criatividade você pode usar o que aprender aqui para outras coisas de acordo com a sua necessidade. É necessário que o apache esteja instalado com suporte a PHP, e o PHP com suporte ao GD. No caso do Kurumin ou outros derivados do Debian basta dar um apt-get install php4-gd para instalar a library e todas as suas dependências. Não entrarei em detalhes sobre a instalação da GD, essa informação é facilmente encontrada no Google. Minha meta é apenas mostrar o funcionamento com o PHP. Vamos ao que interessa: Códigos! Arquivo dicagd.php session_start(); $_SESSION["numeroaleatorio"]=rand(10000000,99999999); ?> Aprendendo com o GDH Nome: Confirmação: É isso mesmo, ele chama um .php como se fosse uma imagem. Criei uma session e defini um valor aleatório entre 10000000 e 99999999 para a variável numeroaleatorio. É com ela que vamos gerar a imagem e fazer a comparação lá na frente. Agora vamos fazer o dicagd2.php, que é para onde o nosso formulário está enviando os dados: Arquivo dicagd2.php session_start(); $NOME=$_POST['nome']; $CONFIRMACAO1=$_POST['confirmacao']; $CONFIRMACAO2=$_SESSION['numeroaleatorio']; if ($CONFIRMACAO1==$CONFIRMACAO2) { echo $NOME . ", a senha digitada está correta!"; } else { echo $NOME . ", a senha digitada está incorreta!"; } ?> Bem, o que o dicagd2.php faz? Ele captura as variáveis enviadas pelo formulário no método POST, abre a session e captura aquele valor randômico que criamos no dicagd.php. Logo e, seguida ele compara o valor digitado com o valor gerado e responde dizendo se está correto, ou não. Agora vamos criar o arquivo imagemgd.php, que é o motivo desta dica :) Arquivo imagemgd.php session_start(); $imagem = imagecreate(70, 15); $fundo = imagecolorallocate($imagem, 255, 255, 255); $fonte = imagecolorallocate($imagem, 0, 0, 0); imagestring($imagem, 4, 0, 0, $_SESSION['numeroaleatorio'], $fonte); header("Content-type: image/png"); imagepng($imagem); ?> O que foi feito? Vamos lá: Claro que este é um exemplo bem básico, simples. Muitas coisas devem ser mudadas se for usado de forma profissional. O rand() por exemplo, poderia ser trocado por uma função que randomiza letras e números. A imagem pode ter uma outra imagem de fundo para dificultar programas de leitura. A session pode trabalhar em conjunto com um cookie, e até uma tabela mysql gravando o ip do usuário para evitar um flood Mas é apartir de coisas simples que nós criamos base para construir coisas complexas, essa é a intenção da dica. E por falar em pesca, seguem alguns links interessantes e que não devem deixar de ser vistos por quem se interessou na dica: http://br.php.net/manual/pt_BR/function.imagestring.php http://br.php.net/manual/pt_BR/function.header.php http://br.php.net/manual/pt_BR/function.gd-info.php http://www.google.com.br/linux
E para fechar, um pacote tar.gz com os arquivos que fui criando enquanto escrevia este texto: ontegd.tar.gz
|
|||||