| Como
colocar uma enquete num site
Vamos mostrar como montar a estrutura básica de uma enquete,
que pode ser reutilizada no site quantas vezes você quiser.
Trata-se de uma aplicação em que você faz
uma pergunta numa página Web e oferece múltiplas
opções como resposta. O visitante do site apresenta
seu voto e, automaticamente, recebe os resultados parciais da
enquete. O mecanismo dessa pesquisa interativa pode ser adaptado
a qualquer site instalado em ambiente Linux, com o servidor
Apache e o interpretador da linguagem Perl ativado.
Para começar, faça o download do exemplo pronto
que será descrito aqui. Um pacote ZIP com todos os arquivos
necessários encontra-se no site de INFO Exame, no endereço
ftp://ftp.uol.com.br/info/enquete.zip
Esse sistema de enquete foi desenvolvido pelo INFOLAB e exige,
antes de tudo, uma correta instalação dos arquivos.
Expanda o pacote ZIP e siga o roteiro a seguir. No servidor,
copie para o diretório cgi-bin o arquivo vote.pl. Garanta
para esse arquivo os atributos de leitura e execução.
Agora, crie, em outro local - por exemplo, na raiz do site,
só para simplificar -, o diretório dados. Dentro
dele, crie um subdiretório chamado enquete. Copie para
essa subpasta todos os outros arquivos contidos no pacote ZIP.
Para todos eles garanta o direito de leitura e escrita. Além
disso, os diretórios dados e enquete também devem
franquear ao visitante as permissões de leitura e escrita.
Todos os arquivos básicos estão nos devidos lugares.
Falta, agora, ajustá-los a seu caso. Mas, antes de prosseguir,
é bom saber o que significa cada um desses arquivos:
1) pesquisa.htm contém o formulário para votação
2) vote.pl é o script em Perl que recebe o voto, processa-o
e apresenta uma página com os resultados parciais
3) resultados.dat é um documento HTML com a extensão
trocada. Contém o esqueleto da página na qual
serão exibidos os números acumulados da enquete,
em valores absolutos e em percentuais
4) erro.dat, outro gabarito HTML com extensão trocada,
apresenta mensagens de erro
5) enquete (sem extensão) é um arquivo-texto que
armazena os resultados da pesquisa.
Vejamos, agora, como configurar a solução. O primeiro
passo consiste em preparar o documento pesquisa.htm. Esse arquivo
contém dois formulários HTML. No primeiro, ficam
a pergunta e as opções que você vai colocar
à escolha do internauta. Cada alternativa é representada
por um botão de opção. No exemplo elaborado
para esta reportagem, montamos uma enquete que pergunta ao usuário
qual o seu sistema operacional preferido e apresenta cinco alternativas.
O internauta escolhe uma delas e clica num botão de comando
com a legenda Vote. O segundo formulário localiza-se
logo abaixo do primeiro e contém apenas uma imagem GIF
com a palavra "Resultados". Em vez de votar, o visitante
pode clicar nessa imagem e passar diretamente à página
com a informação dos resultados. Em lugar de uma
imagem, você pode usar um botão de comando - que,
aliás, é o objeto-padrão para a captura
de informações em formulários. Só
não dá para utilizar um link comum de texto, porque
com ele não é possível chamar o programa
CGI.
O que está descrito acima são os aspectos externos
dos dois formulários, tal como o usuário os verá
na página Web. Mas, para você que vai construir
esses objetos, é importante lembrar ainda alguns detalhes
internos. Os botões de opção devem receber
nomes seqüenciais, como opt1, opt2 etc. Isso facilita procedimentos
que virão depois. Se você estiver usando um editor
de HTML como o FrontPage ou o FrontPage Express, clique com
o botão direito no botão e escolha a opção
Propriedades do Campo do Formulário. Na tela que se abre,
escreva na caixa Valor o nome do campo (opt1, opt2...) e, no
campo Estado Inicial, escolha Não Selecionado. Como você
vai apresentar um conjunto de opções ao visitante,
é fundamental que nenhuma delas esteja pré-selecionada.
Se ele, sem querer, acionar o botão Vote, nenhum voto
será computado.
À medida que você define as características
dos botões de opção, o código HTML
correspondente vai sendo escrito para definir a página.
Se você tem experiência com HTML, pode ir direto
à janela de código e escrever o que for necessário.
No final, a cada botão de opção corresponderá
um comando com a seguinte configuração básica:
<input type="radio" name="option" value="op3">OS/2
Aqui, Input é a marca (tag) que indica um valor de entrada
no formulário. O tipo "radio" indica um botão
de opção - também conhecido como botão
de rádio. O item value descreve o nome do objeto ("op3").
Por fim, vem a legenda que descreve a alternativa de votação,
"OS/2". Ao verificar o código HTML, você
vai encontrar outras marcas, como as indicadoras de fonte e
tamanho, mas essas não são relevantes para o que
se quer mostrar aqui.
No primeiro formulário, o de votação, falta
ainda esclarecer um ponto: o que acontecerá quando o
participante da enquete acionar o botão Vote? A opção
escolhida será enviada ao programa CGI vote.pl, que somará
um voto ao subtotal daquela opção e exibirá
uma página com os resultados parciais da pesquisa, já
incluído o voto do internauta. Para que isso aconteça,
a referência ao script em Perl deve estar contida na propriedade
Ação (Action) do formulário. Em HTML, a
vinculação do formulário ao programa será
feita por um trecho decódigo assim:
<form action="http://seusite.com.br/cgi-bin/vote.pl?
topic=enquete"
Action dá o endereço do programa CGI e informa
o parâmetro topic. O script vote.pl aceita dois tipos
de parâmetro: topic, quando o internauta vota, e option+topic,
quando ele deseja consultar os resultados. No segundo formulário,
portanto, a ação é descrita por um trecho
diferente:
<form action="http://seusite.com.br/cgi-bin/vote.pl?
option=results&topic=enquete"
Com isso, a página pesquisa.htm está pronta. Em
nosso exemplo, essa página contém somente os dois
formulários. Num site real, esses dois formulários
normalmente são colocados como parte da home page principal
ou da home page de uma seção do site. Restam ainda
algumas configurações a fazer. A primeira delas
é no arquivo enquete. Abra-o e escreva, na primeira linha,
a repetição da pergunta central da pesquisa. Na
segunda linha, indique a data final de validade da enquete.
O programa vai desconsiderar votos realizados após essa
data (de todo modo, a essa altura o webmaster já deverá
ter retirado a pesquisa do ar). Em seguida, escreva uma linha
para cada opção, no formato mostrado abaixo. Os
nomes das opções (op1, op2) devem ser exatamente
os mesmos utilizados no formulário. Idem para as legendas
(Linux, Mac OS etc.). O número entre os sinais de igualdade
corresponde ao total parcial de votos registrado para cada alternativa.
Qual o seu sistema operacional preferido?
28/11/2000
op1=1=Linux
op2=1=Mac OS
op3=1=OS/2
op4=1=Windows 95/98/Me
op5=1=Windows 2000
Passemos,
agora, ao arquivo Perl. Abra vote.pl e localize, no início,
o bloco Configurações. Defina, conforme as condições
de seu servidor, as linhas indicadas nesse bloco
$BaseDir = "/home/dados";
$destino="operador\@seusite.com.br";
$PageErr="http://www.seusite.com.br/enquete/manuten.htm";
O
arquivo manuten.htm avisa que a pesquisa está temporariamente
inativa, caso haja algum problema. A variável $destino
deve conter o endereço de e-mail do webmaster. O programa,
automaticamente, enviará a ele uma mensagem quando ocorrer
algum erro na enquete - por exemplo, no caso de um algum arquivo
tornar-se corrompido. Assim, o gerente do site ficará
alertado e poderá tomar alguma providência. Uma
característica adicional do programe vote.pl é
que ele procura evitar a dupla votação. Para isso,
grava um cookie no micro do internauta. O código verifica
a existência do cookie e nega ao internauta o direito
de votar uma segunda vez. Para isso, apresenta uma mensagem.
Tarefa concluída. Naturalmente, você pode redesenhar
os arquivos complementares para que reflitam o estilo utilizado
nas páginas de seu site. Para fazer nova pesquisa, basta
mexer em dois arquivos: pesquisa.htm (ou em sua home page, se
os formulários estiverem embutidos nela) e enquete, cujo
conteúdo deve repetir as definições de
pesquisa.htm. Agora, é só encontrar temas interessantes
e solicitar a opinião dos visitantes de seu site. Eles
adoram participar.
|