O CGI-script
Veja dicas sobre CGI-script e o uso do Linux no boletim ViaLinuxis em: http://www.pcs.usp.br/~jkinoshi/bs/i2.html
Quando você preenche um formulário na internet, deve existir
algum programa do lado do servidor que:
-
1- recebe os dados que você preencheu,
-
2- processa-os e
-
3- devolve alguma informação que depende do que você
preencheu.
Este programa que está no lado do servidor é um CGI-script
e é ativado pelo programa que faz a interface com a web, ou seja,
o web server.
Ressalva: atualmente existem outros tipos de programas
diferentes de CGI-scripts e que tratam formulários, mas os CGI's
estão sacramentados no mercado. Exemplo: servlets, programas em
Java do lado do servidor.
Imagine agora a seguinte situação: você está
dentro de seu browser predileto (ex: Netscape) e quer ativar um programa
em sua própria máquina que trate de formulários. No
Windows isto é (praticamente) impossível. Já no Linux
isto é uma atividade simples, pois o próprio Linux já
possui um web server que chama o seu programa CGI-script. Aliás,
esta é uma das forma que uso para testar os meus CGI-scripts.
Resumindo, um CGI-script eh um programa que roda no servidor e tem como:
-
entrada:
-
dados vindos do formulario preenchidos pelo usuario do lado do cliente
-
saida:
-
uma pagina HTML que eh devolvida ao usuario.
Processamento
Basicamente ele deverá:
-
receber os dados preenchidos no formulário e tratá-los previamente
(ex: obter os dados separados de acordo com os campos do formulário).
-
em muitos casos, os dados são transformados em uma query SQL
-
a query é enviada a um gerenciador de banco de dados.
-
o retorno da consulta deve ser formatado como uma página HTML que
é devolvida ao usuário.
Estas operações podem ser vistas como operações
de manipulação de strings.
Por exemplo:
-
Obter os dados de acordo com os campos de formulário (o nome de
um campo de formulário é uma string) envolve uma operação
de busca de informações (matching).
-
Criar uma query SQL envolve concatenar partes de comandos SQL (strings)
com os dados já separados na etapa anterior (strings).
-
Formatar o resultado da consulta (string) como uma página HTML envolve,
por exemplo, diversas operações de substituição
de um modelo (uma string) pelo resultado da consulta (outra string).
O Perl é uma linguagem que manipula muito bem strings e por isso
é uma das preferidas (senão a preferida) para a criação
de CGI-scripts.
Exemplo
Objetivo: Este CGI recebe a string "nome" correspondente
ao email de alguem. O CGI envia um email para "nome" , alem de retornar
uma pagina HTML indicando que o email foi enviado.
O códgio deste CGI (arquivo mandamail.cgi) é:
------------------------------
#!/usr/bin/perl -w
use CGI qw(:standard);
my $nome = param("nome");
print header() . start_html("Exemplo de um CGI") . h1("Exemplo de CGI")
;
if ($nome) {
print p("enviei email para $nome");
system("mail -s \"ViaLinuxis - palestra\"
$nome <texto");
} else {
print hr() . start_form();
print p("digite seu email: " . textfield("nome",
""));
print end_form() . hr();
}
-----------------------------------
Teste este CGI em sua própria máquina colocando este código
em /home/httpd/cgi-bin/
Sete-o como executável e experimente o script em sua máquina
local como:
http://localhost/cgi-bin/mandamail.cgi