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 fazMaster

sub fazMaster { $alert = shift(@_); print <<_FORM_MASTER_; Content-type: text/html Contato com os bastidores
A Aldeia NumaBoa agradece sua visita. Suas críticas e sugestões serão respondidas com a maior brevidade possível.
É com a participação de todos que poderemos manter um site cada vez melhor!

Por favor, preencha os campos do formulário abaixo. Não se esqueça de indicar seu nome e e-mail para que possamos fazer contato.

$alert
Nome e-mail
Comentário para $topico
_FORM_MASTER_ exit; }

A maior parte ds linhas contêm apenas código HTML da página completa, incluindo o formulário, que desejamos apresentar aos nossos visitantes. Esta área é delimitada através de marcadores especiais: print <<_FORM_MASTER_; e _FORM_MASTER. O primeiro marcador indica o início da área a ser impressa e lhe dá o nome; o segundo indica o final da área nominada. Você pode escolher o nome que quiser (como InicioDaArea ou minhaPage). Apenas indique o início da área com <<. No exemplo mencionado, <

Se você não usar delimitadores de área, cada uma destas linhas precisariam iniciar com um print e o texto da linha precisaria estar entre aspas. Além disso, todos os caracteres especiais precisariam ser precedidos por uma barra invertida e cada linha precisaria de um terminador \n. A linha

teria o seguinte aspecto: print "<form method=\"post\">\n";

Antes de usar o primeiro marcador precisa-se NECESSARIAMENTE indicar o conteúdo, Content-type: text/html, e a linha SEGUINTE precisa NECESSARIAMENTE ficar em branco.

Algumas linhas de código merecem esclarecimentos adicionais. Por exemplo, numa das linhas utilizamos a variável $imgFundo para especificar o arquivo que contém a imagem do fundo da página. Quatro linhas abaixo usamos a variável $imgLogo para inserir uma imagem na página. Ambas as variáveis foram definidas no bloco das variáveis configuráveis e agora estão sendo utilizadas. Caso você queira mudar as imagens, basta atribuir novos valores a estas variáveis no início do script, sem a necessidade de procurar todas as ocorrências das mesmas ao longo do script.

O campo oculto do formulário de nome "mandaMaster" recebeu o valor da variável $tópico, também inicializada no início do script.

Logo no início da desta subrotina inicializamos a variável $alert e lhe atribuímos o valor do parâmetro que fazMaster eventualmente receber. Se a chamada for &fazMaster, uma chamada sem parâmetros, o valor de $alert será "" (vazio) e a linha com $alert, no meio do código HTML, não aparece na página. Se, por exemplo, a chamada for &fazMaster("Falta comentário"), o valor de $alert será "Falta comentário" e esta mesme linha mostrará este texto. Esta possibilidade foi implementada porque a subrotina pode ser chamada de outros pontos do script, como veremos adiante.

Como estamos analisando a chamada feita sem parâmetros, sabemos que inicialmente nossa página contendo o formulário será apresentada sem o $alert.

Informações adicionais