/* programa de teste de forms */ #include #ifndef NO_STDLIB_H #include #else char *getenv(); #endif #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); void plustospace(char *str); main(int argc, char *argv[]){ entry entries[MAX_ENTRIES]; register int x,m=0; int cl; printf("Content-type: text/html%c%c",10,10); if(strcmp(getenv("REQUEST_METHOD"),"POST")){ printf("Este script devera ser referenciado com um metodo post.\n"); exit(1); } if(strcmp(getenv("CONTENT_TYPE"),"application/x-www-form-urlencoded")){ printf("Este script so pode ser usado para descodificar resultados de forms.\n"); exit(1); } cl=atoi(getenv("CONTENT_LENGTH")); for(x=0;cl && (!feof(stdin);x++){ m=x; entries[x].val=fmakeword(stdin,'&',&cl); plustospace(entries[x].val); unescape_url(entries[x].val); entries[x].name=makeword(entries[x].val,'='); } printf("

Resultados:

"); printf("Voce submeteu os seguintes valores:

%c",10); printf("

%c",10); }