#include #include #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); grava(entry *entries, int nro) { register int j; FILE *fp3; char filename[256]; char command[256]; register int x; FILE *fp2; if(!(fp2 = fopen("teste.html", "a+"))) { printf("erro: o arquivo nao pode ser criado\n"); exit(1); } for ( x=0; x <= nro ; x++) fprintf(fp2, "%s : %s
\n", entries[x].name, entries[x].val); fprintf(fp2, "

"); fclose(fp2); /* sprintf(filename, "/tmp/mailin%d", (int)getpid()); fp3 = fopen(filename, "w"); if (fp3 != NULL) { for (j=0; j <= nro ; j++) fprintf(fp3, "\n %s : %s", entries[j].name, entries[j].val); fclose(fp3); sprintf(command, "mail otsuka@inf.ufrgs.br < %s", filename); system(command); unlink(filename); }*/ } /* --------------------------------------------------------------- FUNCAO....: main --------------------------------------------------------------- */ main(int argc, char *argv[]) { entry entries[MAX_ENTRIES]; register int x, m=0; int cl; char *val, *name; 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,'='); m=x; } grava(entries,m); for ( x=0; x <= m ; x++) printf("%s = %s

", entries[x].name, entries[x].val); }