Arquivo

Archive for the ‘FAQ’ Category

On the Fly – O Que É?

4 agosto, 2008 8 comentários

On the fly é uma expressão em inglês que têm como significado os termos: dinâmicamente, às pressas, sempre mudando.

Em termos de programação, o On-the-fly significa algo criado, ou modificado dinâmicamente somente quando requisitamos.

Um exemplo de sistema on-the-fly é o validador de códigos em imagem.

Este tipo de validador, gera uma imagem diferente a cada atualização da página. É imprevisível quantas imagens um usuário poderá necessitar até que este entre com um código correto, por isso não faz sentido armazená-las, pois caso contrário, em um grande site, isto facilmente poderia causar uma sobrecarga.

Mas o On-the-fly resolve esta questão! Uma vez que a imagem fora criada, esta permanesse apenas no cache do usuário. Caso este venha a atualizar a página, uma nova imagem é gerada.

Veja funcionando:

[ Validador On-the-Fly


 

Veja o Código Completo:
(validador.cgi)

 #!/usr/bin/perl
use CGI;
use CGI::Carp “fatalsToBrowser”;
use Image::Magick;
###########################################################

$format = “jpeg”; # Formato de saída

$qs = $ENV{QUERY_STRING}; # Pegamos a querystring

## Lemos o buffer
read(STDIN, $buffer, $ENV{‘CONTENT_LENGTH’});
@conteudo2 = split(/&/, $ENV{QUERY_STRING});
foreach $par (@conteudo2) {
        ($campo, $valor) = split(/=/, $par);
        $valor =~ tr/+/ /;
        $valor =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
        $QUERY{$campo} = $valor;
}

$cgi=new CGI( ); # Criamos uma instância em CGI

if (!$ENV{QUERY_STRING}){ # Se não há querystring
   &addcookie; # Gera novo cookie
   &form; # Mostra formulário
}elsif($QUERY{cod}){ # Se há querystring
  if ($cgi->cookie(‘codigo’) eq $QUERY{cod}){
   # Se o código digitado corresponde ao código no cookie
   &addcookie; # Gera novo cookie 
   # Se corresponde, mostra correto
   print  “<font color=green><h3>Código correto!</h3></font>”; 
   &form; # Mostra formulário
  }else{  # Senão
   &addcookie; # Gera novo cookie
   print  “<font color=red><h3>Código errado!</h3></font>”; # Mostra errado
   &form; # Mostra formulário
  }

}elsif($QUERY{gerar}){ # Se mandou gerar….

  $rand=$cgi->cookie(‘codigo’); # Pega o numero que irá mostrar
  $novo  = Image::Magick-> new(size=>’100×65′);
  # Cria imagem com as dimensões desejadas
  $imagem = $novo-> Read(‘gradient:#CCCCCC-#EEEEEE’);
  # Lê a imagem e coloca-a em uma variável com um fundo degradê
  $imagem=$novo-> Raise(‘4×4’); # Adiciona um efeito de relevo
  $imagem=$novo->MotionBlur(angle=>60,radius=>8,sigma=>3);
  # Adiciona um efeito de borrar
  $imagem=$novo-> Annotate( font => ‘/home/www/HATTEN.ttf’,# Caminho para fonte
fill        => ‘black’,             # Cor da fonte
                                                 pointsize  => 20,               # Tamanho da fonte
                                                 gravity      => ‘Center’,       # Alinhamento
                                                 text          => $rand,          # Escreve o número
  );

  print “Content-type:image/$format\n\n”;
  # Imprime o cabeçalho com o devido formato
  binmode STDOUT;                                 
  # Converte a saída para binario

  $imagem=$novo->Write( “$format:-” );
  # Mostra a imagem no formato escolhido

}

sub form{
 # Mostra na tela
 print qq|<p>Digite o código:</p>
 <img src=?gerar=num />
 <form method=’get’>
  <input type=text name=’cod’ size=8>
  <input type=submit value=’ok’>
 </form>
 |;
}

sub addcookie{
   $codigo=int rand(100000); # Pega um número qualquer
   $cookie=$cgi->cookie(-name=>’codigo’, # Novo cookie
  -value=>$codigo,                    
  -expires=>’+1m’,                     # Expira em 1 minuto
  -path=>’/’,
   ); 
   print $cgi->header(-cookie=>$cookie);  # Salvamos o cookie
}

CHMOD – O Que É? Como Alterar?

Todo arquivo Perl executável necessita de permissões do servidor para permitir que seus usuários executem o programa. Esta permissão ou restrição que é dada aos arquivos é feita através de um comando Unix denominado de CHMOD.

O CHMOD (change mode) possibilita alteração no modo de um arquivo ou pasta para três tipos de permissões que são estas, leitura, escrita e execução. Mas como fazer isto?

Bem como este é um comando do servidor, geralmente é feito através de um programa FTP.

Neste tutorial usaremos como exemplo o programa CuteFTP para realizar esta tarefa.

Conecte-se ao Servidor

Primeiramente configure os dados para conexão de seu servidor e em seguida, clique em Conectar.
Photobucket

 

Envie o Arquivo

Depois que você enviou seu arquivo Perl, note que ele aparecerá na lista de arquivos do servidor.
Feito isso, clique com o botão direito sobre ele e selecione CHMOD.

Photobucket

Altere o Modo

Aqui em CHMOD você poderá então alterar as permissões de seus arquivos.

Photobucket

Definindo as permissões de execução para globais, ou escrevendo ‘755’ em Manual, seu CGI estará  enfim pronto e configurado.

Obs.: Alguns scripts podem requerer outro valor de CHMOD como 777.
Alguns programas de FTP podem váriar o local da opção CHMOD.