php -> cgi ->programma.cmd -> cgi (stampo a video il risultato) -> php
analizziamo questo flusso:
php -> cgi: ovvero
dati inseriti in un form di una pagina html (generata da php, ma è irrilevante come detto da Mich_) da passare ad un cgi... Non ci sono problemi.
se il form è questo:
<form action="/cgi-bin/cmd.cgi" method="GET">
<input type="text" name="numero">
<input type="submit" value="Invia">
</form>
il browser invierà al CGI cmd.cgi i dati che saranno contenuti nella variabile di sistema $QUERY_STRING, quindi nel cgi la raccoglierai così:
#!/bin/sh
dati = $QUERY_STRING
in dati vi sarà "numero=xxxxxx", a te sta a separare il nome del campo dal valore, non conosco abbastanza la bash per dirtelo. Io uso Perl.
Proseguiamo:
cgi ->programma.cmd -> cgi (stampo a video il risultato)
tutto ok. Va bene anche come lo fai, ma qui si chiude, nel senso che la connessione tra server e client viene chiusa e non puoi inviare più nulla al browser, quindi il passaggio dopo:
cgi (stampo a video il risultato) -> php
non è possibile, se intendi passare qualcosa ad una pagina diversa da quella generata dal CGI.