PDA

Visualizza la versione completa : Putty e perl


beponka
03-12-2008, 10:52
Ciao a tutti,
ho un grosso problema nel realizzare una funzione in cgi. E' la prima volta che lo faccio quindi non s quasi nulla in proposito. So che il 99% delle funzioni in cgi vengono sviluppate in perl.
Per compilare il file.p sto cercando di usare Putty ma non so il comando da usare.
In C cc -o <file compilato>.cgi <file da compilare>.c
purtroppo per perl non va bene. :dh: Qualcuno sa consigliarmi come devfo fare?
Grazie in anticipo.

Mich_
03-12-2008, 11:27
Non e` che ho capito molto ...
Anzi ho capito che hai una gran confusione.

CGI e` un protocollo di comunicazione (bidirezionale) server-client.

Per sviluppare un CGI lato server, si deve usare un linguaggio di programmazione (ad esempio Perl, o C/C++ o altri) ed una libreria che e` la chiave per trasformare un programma in un CGI.

Normalmente per i CGI si usa il Perl, che e` un linguaggio interpretato (quindi non compilato). Se sei in ambiente linux, l'interprete viene invocato dalla prima riga del codice sorgente; in ambiente windows l'interprete e` assegnato dal sistema operativo in base all'estensione del file (di solito si usa .pl o .cgi, a seconda di come sono impostate le cose sul server).

Per altre info, ti consiglio di farti un giro nel sito di shishii (il moderatore di questo forum), dove alcune cose sono molto ben spiegate; comunque se non capisci qualcosa posta pure qui: anche se questo forum non e` molto frequentato, ogni tanto ci passa qualcuno anche piu` competente di me.

beponka
03-12-2008, 11:50
Ciao Mich_,
hai ragione, ho una confusione che non ti dico. Devo fare un progetto realizzando un sito internet. Il progetto sta gi in piedi. Ho imparato a programmare in php e html in poco tempo. Tra le specifiche di questo progetto c' appunto la realizzazione di una funzione in cgi. Solo che non ci stato spiegato nulla (della serie vedetevela come volete). Ci hanno spiegato come usare Putty dandoci solo i comandi per compilare i file in c (cc -o file compilato.cgi filedacompilare.c). Ho pensato di realizzare un contatore ma non trovo nessun codice in c che posso compilare ed adoperare.

beponka
03-12-2008, 11:52
cmq potresti darmi l'Url del sito di shishii cos magari mi informi l. :)

Mich_
03-12-2008, 12:12
Credevo che dirti chi e` ti bastasse ...
Dovevi solo trovare un suo intervento e seguire i link.
Comunque il sito e` http://www.shishii.com
A suo tempo (qualche anno fa ormai) ho imparato diverse cose.

Per quanto riguarda i sorgenti: e` molto facile trovare sorgenti in Perl; in C non ne ho mai visto (ma neppure cercati, veramente). Puoi provare con una ricerca in rete, con chiavi tipo: "CGI linguaggio C/C++".
Qualche idea la puoi forse trovare in questo forum (vedi il bottone "cerca" in alto)

beponka
03-12-2008, 15:45
Niente non riesco a trovare un granch su cgi/c. Qualcuno mi potrebbe suggerire dove magari posso trovare qualche funzione. Ne ho provate un paio ma non me le visualizza.
Ho provato una funzione semplice dove mi dovrebbe stampare "Hello world" e invece quando clicco sul link (prova (cgi-bin/hello.cgi)) che ho messo nella mia pagina home.html, non me lo esegue. Compare solo la finestra "Apri con.... o Scarica". Aiutatemi :dh:

Mich_
03-12-2008, 16:35
Ma il server supporta i CGI? E il Webserver e` configurato correttamente per i CGI?

Se lavori in C: Hai usato la libreria CGI correttamente? Hai compilato il programma? Lo hai compilato sul server su cui poi dovra` girare?

Se lavori in Perl: Il server ha l'interprete Perl? Hai collegato il modulo CGI? Hai usato la sintassi corretta per il tuo server?

Di solito la dir cgi-bin e` a livello di root, per cui il link dovrebbe essere:
prova (/cgi-bin/hello.cgi)
(il valore dell'attributo href inizia con slash).
Ma la sintassi esatta dipende da come e` configurato il webserver: dovresti chiedere all'amministratore del server.

beponka
03-12-2008, 16:57
Si il server deve essere configurato perch agli altri gruppi i contatori funzionano.
Su questo server ci sono pi gruppi ognuno con la propria cartella infatti quando metto il link scrivo: prova (grp_32/cgi-bin/hello.cgi) perch la cartella cgi-bin sta all'interno della cartella grp_32. Il file l'ho compilato nella cartella cgi-bin tramite putty cos dentro la cartella cgi-bin viene creto il file hello.cgi. Il problema che mi compare la finestra di salvarlo o aprirlo con ...
anche se pare che ho fatto tutto secondo le regole. Non so cos' che non va.

Mich_
03-12-2008, 17:10
Ma la cartella grp_32/cgi-bin/ l'hai creata tu o te lha fatta il sistemista? Perche` le cartelle CGI devono essere conosciute dal webserver, altrimenti i CGI all'interno non funzionano: se il webserver e` configurato correttamente, i CGI funzionano solo in cartelle apposite, in cui il webserver sa che ci sono degli eseguibili CGI.

Altro dubbio:
se hai compilato con
cc -o <file compilato>.cgi <file da compilare>.c
hai creato un file oggetto e gli hai dato estensione CGI, ma non hai creato un eseguibile.
Se ricordo bene da quando usavo il C, l'opzione -o crea solo il file oggetto e non l'eseguibile: per l'eseguibile occorre far girare nuovamente il cc con il file .o come input e aggiungere in input anche le varie librerie (che devono corripondere ai file .h usati nel primo passo della compilazione).
Maggiori info dal manuale del compilatore.

beponka
03-12-2008, 17:59
No no, la cartella stata creata dall'amministratore.
Devo creare un eseguibile? E una volta creato che devo fare? Pensavo che hello.cgi era gi un eseguibile. :confused:

Loading