AULA 23: Utilização de CGI
NESTA AULA
Nesta aula vamos aprender o que são cgis, para que servem e como se podem
utilizar.
Nesta aula vamos abordar o tópico que nos falta :
CGI (Common Gateway Interface).
Um ficheiro html é essencialmente uma página web; Um ficheiro cgi é um programa
que é executado no servidor web onde reside.
Quando introduz o endereço de uma página web, o seu browser mostra o conteúdo da
página; Quando introduz o endereço de um cgi normalmente ele é executado no
servidor, e o resultado é-lhe apresentado no browser, um pouco à semelhança do
que acontece com um programa no seu computador, ele é executado e mostra o
resultado no ecrã.
Os programas cgi são normalmente programados em Perl, C, C++ ou TCL, sendo o
Perl a linguagem mais utilizada para produção de cgis.
Os ficheiros CGI têm normalmente a extensão .cgi ou .pl (tal como os ficheiros
html têm a extensão .htm ou .html) e residem no servidor num directório especial
(que permite a execução de ficheiros e não apenas a sua leitura), normalmente no
directório /cgi-bin do servidor.
Uma das grandes desvantagens da utilização de cgis é a necessidade de ter acesso
e permissões para poder colocar e executar cgis no servidor web, o que não é
permitido nos servidores que disponibilizam espaço gratuito como Terravista, sapo,
Geocities entre outros.
Para além disso apenas um programador tem a capacidade de criar, de raiz, um cgi,
já que é necessário dominar uma das linguagens de programação que referimos.
Mas existem duas possibilidades para os não-programadores poderem tirar partido
dos cgis sem ter que recorrer a um programador : Podem fazer o "download" de um
cgi disponível gratuitamente, ou podem utilizar cgis alojados em outros
servidores e que estão "disponíveis" para serem utilizados por todos.
Nesta aula não lhe vamos ensinar a programar ou a colocar cgis no servidor já
que a grande maioria dos alunos está a utilizar servidores de web gratuitos.
Optámos por recorrer aos cgis alojados em outros servidores e disponíveis para
utilização geral.
Mas primeiro vamos já ver um cgi em acção. Visite aminharadio.com
em http://www.aminharadio.com e dirija-se ao "Livro de visitas".
No livro de visitas aquilo que vê são páginas web produzidas pelo cgi do livro. O
endereço do livro é na realidade o endereço de um cgi, que quando é executado
produz as páginas web e envia-as para o browser do utilizador.
Vamos agora criar uma página web que utiliza um cgi, e para isso vamos recorrer
a um cgi "contador" que está alojado num servidor algures nos Estados Unidos.
Dirija-se a http://fastcounter.linkexchange.com/
Neste local pode subscrever a um "contador" gratuito que poderá colocar nas suas
páginas. Este contador não é mais que um cgi que gera uma imagem na sua página,
incrementando o número sempre que é executado.
Nesta página clique em "Sign Up" e de seguida "I agree...".
Na página seguinte introduza os seus dados e escolha o tipo de contador que
pretende.
Depois de clicar em "Submit" surgirá uma página que lhe diz que vai receber um
e-mail confirmando a sua "subscrição" gratuita ao contador, e uma pequena janela
na página com o código html que necessita de copiar para a sua página.
Copie o código html para uma das suas páginas e de seguida faça o "upload" da
página para o servidor onde já deverá ter algumas páginas alojadas (reveja a
Aula 9 deste curso para re-lembrar como pode alojar páginas web em servidores
gratuitos).
Quando verificar que o contador está correctamente colocado na página e a
funcionar bem, veja que o número aumenta sempre que faz "reload" à página.
No pedaço de código html que inseriu, o cgi é chamado nesta parte :
<img border="0" src="http://fastcounter.linkexchange.com/fastcounter?00000+0000">
(os algarismos que seguem o ? serão diferentes).
Estamos aqui a utilizar o nosso conhecido tag de imagem, o 'img' que aponta, não
para um ficheiro .gif ou .jpg, mas sim para um cgi, que por sua vez gera um
ficheiro .gif quando é executado.
Na grande maioria dos cgis populares e gratuitamente disponíveis, a sua
utilização é tão fácil como a do contador que acabámos de utilizar, normalmente
basta seguir as instruções e depois copiar o pedaço de html indicado para a(s)
página(s) web.
Vamos agora utilizar um outro cgi, desta vez para colocar um "guestbook" (livro
de visitas) no seu web site.
Um dos serviços de "guestbook" gratuitos mais populares é o "guestworld".
Dirija-se a http://guestworld.tripod.lycos.com/
Para começar a criar o seu "guestbook" clique em "Free Guestbook" na barra
superior de navegação.
Aqui o processo é semelhante, terá que prencher os seus dados, responder a
algumas perguntas e no final colocar o código html que lhe é apresentado na(s)
página(s) devida(s).
Neste outro exemplo vamos relembrar a aula sobre formulários
(Aula 19 deste curso).
Lembra-se da forma como os formulários dessa aula lhe enviavam os dados
preenchidos pelos utilizadores ? Nessa aula recorremos ao método de envio por
e-mail dos dados.
Agora vamos recorrer a um cgi, para que não seja necessário o web browser do
utilizador usar o seu programa de e-mail, o que força ao aparecimento de uma
pequena janela de aviso.
Vamos lembrar um dos formulários que utilizámos na Aula 21 :
-------------
<html>
<head>
<title>Um formulário simples</title>
</head>
<body>
<form enctype="text/plain" method=post action="mailto:minhaconta@meuservidor.com">
País<br><br>
<SELECT NAME="Pais"><br>
<OPTION> ----
<OPTION> Portugal
<OPTION> Brasil
<OPTION> Estados-Unidos
<OPTION> Outro
</SELECT>
<br><br>
Nome : <br>
<S;INPUT TYPE=TEXT NAME="Nome" VALUE="" SIZE=50>
<br><br>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</form>
</body>
</html>
Neste formulário o action="mailto":minhaconta@meuservidor.com" indica que o browser
deve correr o programa de e-mail do utilizador (abrindo uma janela de aviso
indicado que o vai fazer) e enviar um e-mail com os dados introduzidos.
Mas em vez de recorrer a este método, podemos dizer ao formulário para enviar os
resultados para um cgi, evitando assim a janela de aviso e a utilização do
programa de e-mail do utilizador.
Para isso vamos recorrer mais uma vez a um cgi alojado num outro servidor,
disponível gratuitamente.
O cgi "Formmail" disponível em
http://www.vpdev.com/freestuff/help/formmail.shtml
serve perfeitamente os nossos objectivos.
Depois de lêr as instruções de utilização deste cgi pode vêr que o seu
formulário deverá ficar semelhante a este :
(Não se esqueça de substituir minhaconta@meuservidor.com pelo seu endereço de
e-mail).
<html>
<head>
<title>Um formulário simples</title>
</head>
<body>
<FORM METHOD=POST ACTION="http://www.vpdev.com/freestuff/formmail">
<input type=hidden name="recipient" value="minhaconta@meuservidor.com">
País<br><br>
<SELECT NAME="Pais"><br>
<OPTION> ----
<OPTION> Portugal
<OPTION> Brasil
<OPTION> Estados-Unidos
<OPTION> Outro
</SELECT>
<br><br>
Nome : <br>
<INPUT TYPE=TEXT NAME="Nome" VALUE="" SIZE=50>
<br><br>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</form>
</body>
</html>
-------------
Existem dezenas de cgis alojados em outros servidores que poderá utilizar, com
diversos objectivos. Um dos sites que preferimos para consultar os cgis
disponíveis é :
http://www.cgiresources.com/Programs_and_Scripts/Remotely_Hosted/
Recomendamos que visite este site e tente utilizar um outro cgi. A prática é o
que lhe permite aprender mais e melhor !