AULA 23: Utilização de CGI

Separadores primários

Read time: 7 mins

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 !