CGI è un protocollo di comunicazione tra webserver e un eseguibile. Vengono chiamati cgi degli eseguibili che sono in grado di dialogare con un webserver.
Il protocollo è molto semplice: il webserver setta alcune variabili d'ambiente, tramite cui passa i dati, e poi lancia l'eseguibile, che per ricevere i dati legge le suddette variabili d'ambiente, fa le sue elaborazioni e restituisce i risultati con un MIME compatibile con un webserver.
Non so come si faccia in C++ ma in Perl ad esempio i dati si ricevono con:
dove $ENV{'CONTENT_LENGTH'} è la variabile d'ambiente ove è indicata la dimensione dell'input, STDIN è filehandle dove è l'inputcodice:read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; }
per riestituire l'output si fa ad esempio così:
print "Content-type: text/html\n\n";
# abbiamo settato il MIME
print "<html>Ciao</html>";
# mandiamo il risultato.

Rispondi quotando