Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Html form e cgi

  1. #1

    Html form e cgi

    Ciao ragazzi,

    ho una pagina html con il seguente codice:

    codice:
    <FORM ACTION="http://localhost/cgi-bin/mio.cgi" target="_blank">
           
    
    Please specify the multiplicands:
           <INPUT NAME="m" SIZE="5">
           <INPUT NAME="n" SIZE="5">
    
           <INPUT TYPE="SUBMIT" VALUE="Multiply!">
    </FORM>
    ed il codice che genera il cgi è (in C..):
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
       char *data;
       long m,n;
       printf("%s%c%c\n","Content-Type:text/html;charset=iso-8859-1",13,10);
       printf("<TITLE>Multiplication results</TITLE>\n");
       printf("<H3>Multiplication results</H3>\n");
       data = getenv("QUERY_STRING");
       if(data == NULL)
           printf("
    
    Error! Error in passing data from form to script.");
       else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
           printf("
    
    Error! Invalid data. Data must be numeric.");
       else
           printf("
    
    The product of %ld and %ld is %ld.",m,n,m*n);
        return 0;
    }
    Qualcuno saprebbe dirmi perchè, una volta compilato il sorgente C e messo il file eseguibile "mio.cgi" nella directory cgi-bin del mio server locale, alla pressione del tasto "Multiply" sulla pagina html non succede assolutamente nulla?
    (sottolineo il fatto che non compaiono neanche messaggi di "page not found" come mi succedeva precedentemente quando sbagliavo la cartella dove mettere l'eseguibile...).

    In poche parole, cosa devo fare per poter visualizzare il risultato della moltiplicazione?

    Come avrete capito sono un neofita di queste tecnologie, quindi mi scuso per la banalità della domanda, ma ho provato a cercare nelle discussioni passate senza trovare la risposta adatta...

    Grazie, ciao

  2. #2
    Esiste un forum apposito per parlare di CGI :rollo:

    Hai provato a mettere method="post" nel tag <form>??
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  3. #3
    Risolto. Semplicemente sbagliavo il path dove copiare il cgi in Apache.

    Avrei altre due domande da pivellino però...:

    1) con il codice postato visualizzo correttamente il risultato della moltiplicazione, ma in una nuova pagina. E' possibile in qualche modo visualizzarlo nella stessa pagina html contenete il form di invio? (magari in una textfiel apposita...)

    2) se pure non esplicitato (ne evinco che sia di default...) sto usando il metodo GET e non il metodo POST. Se volessi passare a POST ovviamente dovrei riscrivere il cgi C per gestire in modo diverso la stringa passata. Sapreste indicarmi dei riferimenti in rete o direttamente dei suggerimenti per scrivere rapidamente piccole funzioni C per la gestione della stringa ricevuta tramite metodo POST?

    Ciao e grazie

  4. #4
    Originariamente inviato da FastMagister
    Risolto. Semplicemente sbagliavo il path dove copiare il cgi in Apache.

    Avrei altre due domande da pivellino però...:

    1) con il codice postato visualizzo correttamente il risultato della moltiplicazione, ma in una nuova pagina. E' possibile in qualche modo visualizzarlo nella stessa pagina html contenete il form di invio? (magari in una textfiel apposita...)
    è possibile usando la tecnologia AJAX, che ti consente di fare richiesta asincrone al server, ovvero di caricare dati frutto di elaborazione server side nella stessa pagina.


    2) se pure non esplicitato (ne evinco che sia di default...) sto usando il metodo GET e non il metodo POST. Se volessi passare a POST ovviamente dovrei riscrivere il cgi C per gestire in modo diverso la stringa passata. Sapreste indicarmi dei riferimenti in rete o direttamente dei suggerimenti per scrivere rapidamente piccole funzioni C per la gestione della stringa ricevuta tramite metodo POST?

    Ciao e grazie
    I parametri passati tramite il metodo POST sono raccoglibili dal filehandle STDIN, ovvero dallo standard input. Come questo si faccia in C non ti so dire.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.