/******************************************************************/ /**** Scritto Da F.Sacco *****************************/ /**** Ultima mod. 25-11-02 */ /**** *****************************/ /*** Va bene X tutti i CGI, sia GET che POST */ /******************************************************************/ #include char *getenv(char *); /* prototipo per getenv() */ #define MAX 32000 char buffer[MAX]; /* MAX, andrebeb a 64K, per eventuali TEXTAREA...*/ void testa_generale(void) /* testa per ogni HTML generato dinamicamente */ { printf("Content-type: text/html\n\n"); /* Senza questa, il browser non interpreta l'HTML di ritorno!!!*/ printf("\n"); /* Parte da qui l'HTML di ritorno.. dinamico!! */ printf("\n"); } void piede_ls() /* CHIUDE il documento HTML .. dinamico */ { printf(""); printf(""); } void fatalerror(char *msgerr) /* errore che implica la terminzione */ { testa_generale(); printf("\n
\n
\n",'%'); printf("\n",msgerr); printf("\n
\nERRORE: %s\n
"); piede_ls(); exit(1) ; /* Il cgi termina qui...*/ } main() /* Programma principale */ { char *query; /* punatore alla query_strimg */ char *method; /* puntatore alls request_method */ int ldati; /* numero byte in input (caratteri ricevuti) */ method = getenv("REQUEST_METHOD"); if ( method == NULL) fatalerror("Non trovo var. REQUEST_METHOD"); if (strcmp(method,"GET") == 0) { query = getenv("QUERY_STRING"); if ( query == NULL) fatalerror("Non trovo var. QUERY_STRING\n"); strcpy(buffer,query); /* La metto nel buffer */ ldati = strlen(query); } else if (strcmp(method,"POST") == 0) { ldati = read(0,buffer,MAX); /* pesco dall'input standard */ } testa_generale(); /* NON dimenticare... o ERRORI di APACHE!!*/ printf("
Metodo = [%s]
Byte = [%d]
Dati ricevuti = [%s]
", method,ldati,buffer); piede_ls(); return(0); }