Como foi visto, o atributo ACTION do FORM especifica o nome do programa executável (.cgi) ao qual será submetido o FORM. Portanto será mostrado agora como criar a parte básica do programa fonte deste executável.
O exemplo que será apresentado neste tutorial utiliza a linguagem C para gerar o fonte do programa cgi.
#include <stdio.h> #include <string.h> #define MAX_ENTRIES 10000 typedef struct { char *name; char *val; } entry; char *makeword(char *line, char stop); char *fmakeword(FILE *f, char stop, int *len); char x2c(char *what);
void unescape_url(char *url); void plustospace(char *str); /* --------------------------------------------------------- FUNCAO: main
--------------------------------------------------------*/ main(int argc, char *argv[]) { entry entries[MAX_ENTRIES]; register int x, m=0; int cl; cl = atoi(getenv("CONTENT_LENGTH")); printf("Content-type: text/html%c%c",10,10); for (x=0; cl && (!feof(stdin)); x++) { entries[x].val = fmakeword(stdin,'&',&cl); plustospace(entries[x].val); unescape_url(entries[x].val); entries[x].name=makeword(entries[x].val,'='); } }
O bloco mostrado no exemplo acima realiza a separação dos valores dos pares name/value da
Os procedimentos fmakeword, plustospace, unescape_url, makeword estão disponíveis no arquivo util.c.