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 - Tutoriais e Programação

Perl+CGI - Um script de verdade

Ter

18

Nov

2008


19:46

(4 votos, média 4.00 de 5) 


A subrotina checaEmail

A subrotina checaEmail() faz a validação de um endereço de e-mail. É uma rotina pequena e, por isso mesmo, limitada. Esta rotina não verifica a existência do endereço de e-mail, ela apenas checa se há erros de sintaxe.

sub checaEmail { $temp1 = shift(@_); $temp1 =~ s/_/a/g; $temp1 =~ s/-/a/g; unless ($temp1 =~ /\w+@\w+.\w+/) { $alert = "
\n"; $alert .= "Desculpe, mas o endereço de e-mail não está correto.\n"; $alert .= "Por favor, tente novamente.
\n"; return 0; } return 1; # retorna true }

A subrotina é chamada com um parâmetro, o valor do campo email do formulário. Este parâmetro é obtido através de um shift e atribuído à variável $temp1. A seguir são retirados todos os caracteres "_" e "-" e verifica-se se $temp1 possui um caracter "@".

Caso não exista a arroba, atribui-se à variável $alert uma string contendo o código HTML de uma tabela com um aviso e força-se o retorno com valor zero, o mesmo que falso. Caso contrário, o valor de retorno é 1 ou verdadeiro.

Analisando a chamada a esta subrotina, if (!&checaEmail($FORM{'email'})) { &fazMaster($alert); } verifica-se que, caso a subrotina checaMail() retornar falso, imediatamente é chamada a subrotina fazMaster() carregando a variável $alert contendo a string com o código HTML. A rotina fazMaster utilizará $alert para dar a mensagem de erro e encerra a execução do script. Se não forem encontrados erros, a subrotina fazMaster() nem é chamada e o script vai para a próxima checagem.

A subrotina checaComent

A subrotina checaComent() checa se o campo comentário do formulário está vazio. No mesmo estilo da chamada anterior, se a subrotina checaComent() retornar falso, a subrotina fazMaster() é chamada com a variável $alert contendo a mensagem de erro e encerrra a execução do script; se retornar verdadeiro, o script continua sua execução sem desvios.

sub checaComent { if ($FORM{'comentario'}) { return 1; } $alert = "
\n"; $alert .= " *** Você esqueceu de acrescentar seu comentário *** \n"; $alert .= "
\n"; return 0; # retorna false }

Informações adicionais