Introdução à linguagem CGI.

CGI (Common Gateway Interface) pode ser escrito em muitas linguagens tais como C++, Perl, Visual Basic, etc. O CGI torna sua pígina mais interativa para seus visitantes. Você pode ter contadores de acesso, livros de visitas, chats, fóruns, listas de atualização, pesquisas internas, restringir o acesso a píginas e/ou diretórios, fazer votações dentre outros.

O que é "path", "full path" ou "real path"?

É o caminho dos seus arquivos no servidor.

Pode ser algo como:
/home/seu_username/public_html

Você deve perguntar isso ao administrador do servidor (hostmaster). A maioria dos servidores coloca informações sobre isso nas suas seções de FAQ.

Que sistemas operacionais suportam Perl?

Os scripts rodam em servidores UNIX, Linux, Apache, Windows 98/2000/NT, etc; porém a maioria dos scripts disponibilizados na Internet roda em UNIX.

Meu servidor suporta Perl?

Para ter certeza você terí que perguntar ao administrador do seu servidor. Alguns servidores gratuitos não suportam Perl como Geocities, Xoom (Nbci), Terràvista, Vila Bol, Hpg, Intermega, Angelfire, etc. Entretanto, a Virtual Avenue, o Hypermart e Webjump suportam. Se você preferir dê uma olhada na CGI For Me que oferece scripts Perl gratuitos e que 'rodam' no servidor deles.

Onde é o interpretador Perl do meu servidor?

Existe um diretório especàfico do "Perl" que deve ser configurado corretamente para os scripts funcionarem.

Pode ser algo assim:
/bin/perl
/usr/bin/perl
(o default)
/usr/local/bin/perl

Ele deve estar na 1º (primeira) linha dos scripts Perl. Se você não sabe onde ele estí ou você pergunta ao administrador do servidor (hostmaster) ou se tiver acesso via Telnet use o comando "which perl" para detectí-lo.
Normalmente em servidores Windows NT isso não é necessírio porque eles mesmos localizam o caminho.

Onde é meu diretório "cgi-bin"?

O cgi-bin deverí estar abaixo do diretório raiz (principal). Geralmente ele se chama "cgi-bin" ou "cgi-local". Alguns servidores colocam em lugares diferentes ou os tranca precisando de um pedido seu para destrancí-lo.

O que é "chmod"? Como dar "chmod" nos arquivos e diretórios?

É a permissão dos arquivos e/ou diretórios. No UNIX um arquivo ou um diretório pode ser liberado para: Leitura, Gravação ou Execução. Um diretório que contenha arquivos de programas tem que ser liberado para execução.

Permissões:
Ler: 4;
Gravar: 2;
Executar: 1.

Para dar "chmod" em arquivos você deve usar um progama de FTP ou Telnet.
Para arquivos Perl (cgi e pl) você deve alterar o chmod para 755, assim:
chmod 755 arquivo.cgi
Para arquivos Html e Texto você deve alterar o chmod para 666, assim:
chmod 666 arquivo.html

Como enviar (upload) meus arquivos e scripts Perl?

Todos os scripts Perl devem ser enviados (upload) em modo "ASCII" e fixados em "chmod 755".
Outros como "html, htm e txt" serão enviados em "ASCII" ou "Binary" e fixados em "chmod 666".
Todas as imagens como "gif e jpg" serão enviadas em "Binary". Diretórios para scripts CGI em "chmod 755" e todos os outros diretórios serão fixados em "chmod 777" se você não sabe como configurí-los.

Por que eu recebo essas mensagens de erro?

document contain no data
Se você recebeu essa mensagem significa que seu script estí funcionando mas alguma coisa não estí correta. Hí duas possibilidades:

1. O chmod dos arquivos e/ou diretórios não estí correto. Dê "chmod 777" nos diretórios onde estão os arquivos "html e txt", "chmod 666" para os arquivos "html e txt" e "chmod 755" nos arquivos "cgi e pl".

2. O caminho (path) não estí correto em seus scripts. Contacte o administrador do seu servidor para ter certeza do caminho.

Internal Server Error
Esse é o erro mais comum que você pode receber. Seu servidor suporta Perl e você deu o chmod correto em seus scripts. Provavelmente o script contém algum erro. Para evitar o erro nós recomendamos não tentar modificar o script ou a írea de "SETUP" do servidor.

Access denied
Seu servidor não suporta Perl. Especialmente para alguns espaços da web que provêem acesso por seu "ISP" ou alguns serviços de hospedagem gratuita.

Direitos Cedidos a CGiClube pelo autor: Marcus A. DAlencar

--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------

? Tutorial de Programação Visual com Gtk-Perl

Com este material pretendo dar uma introdução a Gtk-Perl, uma excelente opção para
quem não consegue escapar, ou apenas gosta de programação visual. Que nos dias de
hoje esta se tornando quase que indispensível. Mas neste artigo não pretendo me
prender muito a códigos deixarei isto para um próximo material, onde pretendo
falar um pouco de projeto real.


1.1 - Introdução

1.2 - O que é Gtk?

1.2.1 - O que é widget?

2.1 - Sobre Gtk-Perl.

2.2 - Programa Exemplo.

2.3 - Alguns Comentírios Sobre o Código.

--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------

1.1 - Introdução

A interface visual de um programa é sem duvida nenhuma um dos principais aspectos,
e nos dias atuais com a popularização dos meios, cada vez mais pessoas tem acesso
a diversos serviços, ferramentas etc... Desta forma torna algumas aplicações,
quase que obrigatórias possuàrem uma interface grífica, um bom exemplo é terminal
de auto-atendimento bancírio. Pois pessoas de todas as idades e escolaridades
estão acessando o serviço tornando indispensível para aquela aplicação possuir uma
boa interface com o usuírio final.

1.2 - O que é o GTK ?

GTK é uma abreviação para GIMP Tool Kit. O GIMP (GNU Image Manipulation Program) é
um poderoso editor grífico, ao estilo do Adobe Photoshop. O GTK tem esse nome pois
foi originalmente concebido para servir de ferramenta no desenvolvimento do GIMP.
Devido a versatilidade das funções do GTK, hoje este é utilizado na produção de
diversos outros programas além do GNU Image Manipulation Program, que variam desde
pequenos utilitírios, como o GTK-ICQ, até grandes projetos, como o gerenciador de
Desktop GNOME.

O GTK é na verdade um conjunto de widgets (você verí o significado desta palavra
mais adiante), que usa funções de outra biblioteca chamada GDK (GIMP Drawing Kit),
que por sua vez é um conjunto de funções que chamam outras funções de baixo nàvel
do ambiente grífico em que o programa é compilado. Todo o conjunto do GTK ainda
depende de uma biblioteca chamada GLib (GNU Library) de funções úteis, comuns a
vírios programas GNU, e que aumentam portabilidade.

Existem interfaces de GTK para vírias linguagens, embora este documento trate
apenas da versão para C. Programar em GTK exige o entendimento de conceitos de
orientação a objetos, que não são tão complicados para quem não conhece nada deste
estilo de programação, e ainda servem como uma boa introdução para o assunto.

1.2.1 - O que é um widget ?

Um widget (literalmente, buginganga) é um objeto importante ao layout da aplicação,
e é a estrutura fundamental dos programas em GTK. A maioria dos widgets são objetos
gríficos como janelas, botões, listas e figuras. Outros são invisàveis, mas permitem
controlar coisas como o alinhamento de outros widgets na tela. A grande maioria das
funções no GTK serve para manipular os widgets de alguma forma.

2.1 - Sobre Gtk-Perl

Gtk-Perl é um modulo que utiliza as bibliotecas Gtk em conjunto com Perl, Gtk-Perl
inclue também algumas outros submodulos GdkImlib, Gnome, GtkXmHTML, GtkGLArea, e
Glade. Permitindo ao programador Perl, utilizar o designer de Gtk, aumentando a
amigabilidade com usuírios mais leigos.

2.2 - Programa Exemplo.

Então para iniciar a introdução ao Gtk-Perl, vamos ao tradicional Olí Mundo, onde
serí criado um botão label "Goodbye World", clicando no botão a janela serí fechada.

#!/usr/bin/perl -w

use Gtk;
use strict;
set_locale Gtk;
init Gtk;

my $false = 0;
my $true = 1;

my $window = new Gtk::Window( "toplevel" );
my $button = new Gtk::Button( "Goodbye World" );

$window->signal_connect( "delete_event", \&CloseAppWindow );
$button->signal_connect( "clicked", \&CloseAppWindow );

$button->show();

$window->border_width( 15 );
$window->add( $button );
$window->show();

main Gtk;

exit( 0 );
sub CloseAppWindow
{
Gtk->exit( 0 );
return $false;
}
2.3 - Alguns Comentírios sobre o Código.

Para os programa dores habituados com Perl verão algumas expressões diferentes como
as citadas abaixa:

"init Gtk;": Necessita ser incluàdo para todas as aplicações Gtk-Perl. Isto inicia
o módulo de GTK e ajusta algumas coisas, como o visual default e color map.

"set_locate Gtk;": Caso seja incluàdo você poderí tornar seu programa mais amigível,
para o uso de outra làngua alem do Inglês.

"main Gtk;": Incorpora o laço, processando o evento principal de GTK. Esta é uma
outra linha que você verí em cada aplicação Gtk-Perl. Quando o controle alcança este
ponto, GTK dormirí eventos de espera de X, intervalos de parada, ou notificações do IO.

Gtk-Perl

http://www.gtkperl.org (Site oficial do Gtk-Perl, com downloads e códigos exemplos.)

Iniciando-se no Gtk

http://equipe.nce.ufrj.br/adriano/c/apo ... orial.html (Ótimo material em português, sobre Gtk, Elaborado por Adriano Joaquim
de Oliveria Cruz, tendo mais excelentes matérias.)

Gtk-Perl Tutorial

http://personal.riverusers.com/~swilhel ... -tutorial/ (Tutorial do Gtk-Perl.)

Site oficial do Gtk

http://www.gtk.org (Lí você poderí encontrar mais informações muito úteis sobre Gtk.)


Crétidos:
http://ocxy.host.sk/textos/gtk-perl.txt


--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------