Newsgroup: it.comp.www
Titolo: Script CGI

Ciao a tutti,
ho necessita' di scrivere uno Script CGI ma.......non so come fare :-(
In particolar modo vorrei sapere se (e come) e' possibie collegarmi ad
un server e "leggere" gli Script CGI eventualmente presenti nella
directory "CGI-BIN".
Sapete anche dove posso trovare dei manuali On-Line??
Grazie
-- 
************************************************************************
*      Bertellotti Alessandro    *     IRC Nick (on EFNET): Roccia     *
*       
abe...@versilia.net
     *     PowWow: 
roc...@versilia.net
     *
************************************************************************
*     HOME-PAGE "Il primo sito italiano dedicato alle ARTI MARZIALI"   *
*      "MARTIAL NET" --> 
http://www.programatic.it/websurf/dojo/
       *
************************************************************************
*    ISCRIVITI ALLA PRIMA MAILING-LIST ITALIANA SULLE ARTI MARZIALI    *
*        MAILTO:
majo...@programatic.it
 - BODY: subscribe dojo        *
************************************************************************

...
: > Ciao a tutti,
: > ho necessita' di scrivere uno Script CGI ma.......non so come fare :-(
: > 
: > In particolar modo vorrei sapere se (e come) e' possibie collegarmi ad
: > un server e "leggere" gli Script CGI eventualmente presenti nella
: > directory "CGI-BIN".
: > 
: > Sapete anche dove posso trovare dei manuali On-Line??
: > 
: > Grazie
: Ciao quando ho letto CGI mi sono tuffato nell'articolo in cerca di
: informazioni,
: ma tu stai peggio di me :-( comunque :-) ti dico quello che ne so io,
: prima cosa la disrectory CGI-Bin in questione non da accesso al pubblico
: quindi  impossibile conoscerne il contenuto, l'unico modo sarebbe quello
: di scrivere al provider e chiederglielo. Comunque sia i programmi o script
: Cgi presenti in un server sono nella maggior parte dei casi specifici e non
: riutilizzabili da terzi tranne che non si tratti di contatori etc..
Alcuni programmi molto semplici tipo mailto,formmail e simili sono 
public domain e utili per implementare applicazioni di tipo mailing
in modo agevole (e molti form non fanno altro che mailing da qualche
parte). Ottenere informazioni sulla CGI e' tutto
sommato banale, anche perche' ci sono 4 informazioni in croce 
a riguardo e il resto e' normale programmazione .
Basta uno dei qualsiasi libri sull'argomento (ce ne sono a quintali)
per capire come si interfaccia un programma con il server www.
Per il resto tutto dipende da
1) il sistema operativo impiegato dal server
(quasi tutto orientato a Unix, del resto Windoze N(ew)T(rash) e' forse un 
sistema operativo?)
2) il linguaggio di programmazione (consiglio il Perl)
3) il software installato sul server
4) le palle del programmatore/webmaster :-)) che metterei in primissima 
posizione.
Le applicazioni cgi si possono realizzare come meglio
pare purche' si rispettino le indicazioni di protocollo e siano
rientranti (se no si rischiano comportamenti bizzarri).
 
: Comunque dal momento che sai che tipo di Cgi gira sul tuo server Provider
: non resta che fargli una chiamata diretta del tipo
: 
www.nomeserver.it/cgi-bin/nomeprogr.exe
? e passargli dei parametri o
: altrimenti inserire un form in una tua pagina html. Ma ti dico che la cosa
: e assai complessa soprattutto se ti devi creare uno script cgi specifico
: perch le specifiche tecniche necessarie cambiano da server a serer.
: Spero di esserti stato d'aiuto
: Vorrei che questo articolo continuasse con altri interventi al fine di
: approfondire l'argomento...
Si approfondisce molto meglio su un libro, comunque in rete basta
contattare lo yahoo e beccare la sezione CGI per avere le informazioni
interessanti...
Come riferimenti 
CGI Programming (molto buono, secondo me. E' uscito da pochissimo)
Programming Perl (di Larry Wall in persona, un minuto di raccoglimento
per favore)
tutti della sempiterna O'Reilly and Associates (
www.ora.com
)
Non mi chiedere testi in italiano perche' non compro libri italiani
di informatica dai primi anni di universita'
(non e' una forma di razzismo, sono loro che sono italiani :-))
: Saluti
--
                   ```
                  (o o)
--------------oOO--(_)--OOo--------------------------------------------------
Francesco P. Lovergine | E-mail: 
love...@iesi.ba.cnr.it
    |I stituto
CNR-IESI               | WWW: 
http://www.ba.cnr.it/~iesifl01
 |E laborazione
Via Amendola 166/5     | Pho: +39 80 5481969 5481612 5481699 |S egnali e
70126 Bari             | Fax: +39 80 5484311                 |I mmagini
I T A L Y              |                                     |
-----------------------------------------------------------------------------
       Nessuna impresa e' mai stata compiuta da un uomo ragionevole.
-----------------------------------------------------------------------------

 perch=E8 le specifiche tecniche necessarie cambiano da server a serer.
Si ma il mio problema e' quello di dover scrivere degli Script ex-novo
senza usare quelli presenti sul server!!!
Comunque grazie.
-- =


 Comunque grazie.
Non servono libri per imparare le specifiche cgi, sono 4 cazzate, i form
possono inviare dati con i metodi get o post, il primo utilizza una
variabile ambiente, il secondo stdin (il canale standard di input in C),
per rispondere a una richiesta si utilizza stdout (l'output standard)
FINE. Quello di cui hai bisogno e' un po di codice che ti faccia il
parsing dei dati in ingresso (con ambedue i metodi) e un testo che
descriva tutte le variabili ambiente utili e le varie specifiche CGI. Il
linguaggio di programmazione che ti consiglio e' il C, con il perl fai
prima ma e' meno efficiente e ha problemi di sicurezza. Io ho codato una
board in C usando il CGI (server) e Javascript (client error checking)
http://www.heraclea.it/messaggi/
Tutto quello di cui hai bisogno lo trovi usando un motore di ricerca
saluti

 saluti
e ti pare poco!!!....
Prima cosa le specifiche tecniche di cui parlavo io riguardavano proprio
stdout e cioč l'out diretto al server, come tu ben saprai c'č bisogno
dell'invio di un Header, ed ogni server web ha il suo. 
Poi hai detto "...quello che ti serve č un po di codice..." non credono
siano tutti programmatori come te e dipende comunque il linguaggio che si
usa. Io per esempio uso il Clipper, e gestire stdout e stdin in Clipper č
si facile ma tutto sta a sapere quali i comandi da usare. Scrivere poi il
codice per leggere dividere la query_string in altrettante variabili da
riutilizzare nello script. Insomma non puoi dirmi che sono 4 cazzate, ma
che c'č bisogno di conoscenze di base, se poi vuoi scrivermi lo script che
faccia apparire il messaggio "Hello Word" č un altro discorso!!.
saluti.

 faccia apparire il messaggio "Hello Word" č un altro discorso!!.
madai non e' difficile, abbiamo un form con una casella di testo di nome
PIPPO 
<input type=text name=pippo> usiamo il metodo get per inviarlo, in
risposta vogliamo
un documento html dinamico che contenga il valore inserito.
inviando il form verra' generata l'URL 
http://host.it?PIPPO&VALORE
nella variabile ambientale QUERY_STRING ci si ritrova PIPPO&VALORE 
la lunghezza (12) la si ritrova in CONTENT_LENGHT.. ora ci serve
un'istruzione
per accedere alle variabili ambientali e ogni linguaggio ne ha una...  
es getenv in c e java, ottenuta la lunghezza (ricordati di convertirla
in intero)
e la stringa si fa il parsing, cioe' la si scompone "PIPPO" "VALORE" (le
variabili
multiple sono separate da un '+' es PIPPO&VALORE+PLUTO&VALORE),
ammettiamo di aver
assegnato il valore di pippo ad una variabile di nome pluto, possiamo
finalmente 
costruire il codice html dinamico che sara' del tipo
printf("Content-type: text/html\n\n");
printf("<html><head>Il mio primo documento dinamico</head>\n");
printf("<body>Hello world, hai inserito %s</body></html>\n",pluto);
tutto qui, il get gestisce un numero limitato di caratteri, 
con il post non hai limitazioni, la differenza e' che la stringa
codificata 
va letta direttamente dall'input (leggi "CONTENT_LENGHT" caratteri da
input, li metti in 
una variabile e fai il parsing come per il metodo get)
penso possa essere utile anche ad altri, se hai difficolta' mandami
un'email
PS scusate eventuali imperfezioni ma e' l'una di notte e ho scritto
tutto "a memoria"