Vai all'home page di Interhobby
Interhobby
Web hosting service
Clienti

Come utilizzare 
i CGI in Perl 
su server UNIX

Creazione e test di
un semplice CGI

Esecuzione di comandi
e percorsi.
- Un semplice CGI

Per prendere confidenza con la realizzazione dei cgi in Perl presentiamo un semplicissimo script che consente di stampare attraverso il browser tutte le variabili disponibili ai CGI e da questi utilizzabili.

 

#!/usr/bin/perl
#
#Questa riga e' indispensabile, in sua 
#mancanza l'interfaccia CGI
#ritorna un generico 'Server Error'
print "Content-type: text/html\n\n";

print "Elenco delle variabili disponibili al CGI<p>\n";
 

while (($key, $val) = each %ENV) {
        print "$key = $val<BR>\n";
}
 

Copiate questo testo in un file, per esempio test.cgi e, seguendo  le indicazioni precedenti caricatelo sul server.
Se tutto e' stato fatto correttamete, invocandolo attraverso il browser alla url http://<sito>/cgi-lib/test.cgi dovrebbe apparire qualcosa del genere:

 

Elenco delle variabili disponibili al CGI

SERVER_SOFTWARE = Apache/1.3.4 (Unix) PHP/3.0.6
GATEWAY_INTERFACE = CGI/1.1
DOCUMENT_ROOT = /home/httpd/htdocs
REMOTE_ADDR = 127.0.0.1
SERVER_PROTOCOL = HTTP/1.0
SERVER_SIGNATURE = 
REQUEST_METHOD = GET
HTTP_REFERER = http://localhost/cgi-lib/
QUERY_STRING = 
HTTP_USER_AGENT = Mozilla/4.06 [en] (X11; I; Linux 2.0.34 i586)
PATH = /sbin:/bin:/usr/sbin
HTTP_CONNECTION = Keep-Alive
REMOTE_PORT = 2376
HTTP_ACCEPT_LANGUAGE = en
SCRIPT_NAME = /cgi-lib/test.cgi
HTTP_ACCEPT_ENCODING = gzip
SCRIPT_FILENAME = /home/httpd/htdocs/cgi-lib/test.cgi
SERVER_NAME = localhost
REQUEST_URI = /cgi-lib/test.cgi
HTTP_ACCEPT_CHARSET = iso-8859-1,*,utf-8
SERVER_PORT = 80
HTTP_HOST = localhost
SERVER_ADMIN = root@localhost

Nel caso che abbiate commesso qualche errore, anche banale come la dimenticanza di un ; otterrete un messaggio di errore assolutamente poco esplicativo, un messaggio come quello seguente e' spesso motivo di scoraggiamento per molti sviluppatori alle prime armi:
 

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might
have done that may have caused the error.

More information about this error may be available in the server error log.

Un aiuto, pur minimo, lo potrete avere dalla visione del file http://<sito>/stat/error_log che puo' presentarsi piu' o meno come:
 

syntax error at /home/httpd/htdocs/cgi-lib/test.cgi line 7, near "print"
Execution of /home/httpd/htdocs/cgi-lib/test.cgi aborted due to compilation errors.
httpd: [Fri May 28 23:28:16 1999] [error] [client 127.0.0.1] Premature end of script headers: /home/httpd/htdocs/cgi-lib/test.cgi

Come si vede vi si possono trovare indicazioni importanti ed utili sul perche' lo script sia terminato in maniera anomala.


Vai alla pagina precedente Vai alla pagina precedente Copyright © 1998 - Interhobby
-