next up previous contents
Next: El fichero cgi_util.c Up: Código CGI Ejemplo Previous: Código CGI Ejemplo   Índice General

El fichero echoPost.c

indentation

#include $<$stdio.h$>$
#include $<$stdlib.h$>$
#include "cgi_util.c"

#define MAX_ENTRIES 10000

typedef struct {
char $\ast$name;
char $\ast$val;
} entry;

main(int argc, char $\ast$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 debe ser referenciado con el metodo POST.$\backslash$n");
exit(1);
}
if(strcmp(getenv("CONTENT_TYPE"),
"application/x-www-form-urlencoded")) {
printf("Este script solo puede ser usado para decodificar formularios . $\backslash$n");
exit(1);
}

printf("$<$h1$>$Variables de Ambiente$<$/h1$>$%c",10);
printf("$<$ul$>$%c",10);
printf("$<$li$>$ QUERY_STRING $=$ %s",getenv("QUERY_STRING"));
printf("$<$li$>$ CONTENT_LENGTH $=$ %s",getenv("CONTENT_LENGTH"));
printf("$<$li$>$ REQUEST_METHOD $=$ %s",getenv("REQUEST_METHOD"));
printf("$<$li$>$ HTTP_ACCEPT $=$ %s",getenv("HTTP_ACCEPT"));
printf("$<$li$>$ REMOTE_HOST $=$ %s",getenv("REMOTE_HOST"));
printf("$<$li$>$ SCRIPT_NAME $=$ %s",getenv("SCRIPT_NAME"));
printf("$<$li$>$ SERVER_SOFTWARE $=$ %s",getenv("SERVER_SOFTWARE"));
printf("$<$li$>$ SERVER_NAME $=$ %s",getenv("SERVER_NAME"));
printf("$<$li$>$ SERVER_PORT $=$ %s",getenv("SERVER_PORT"));
printf("$<$li$>$ GATEWAY_INTERFACE $=$ %s",getenv("GATEWAY_INTERFACE"));
printf("$<$/ul$>$%c",10);

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("$<$H1$>$Resultado del cuestionario$<$/H1$>$");
printf("Obtenidos los siguientes pares de nombre/valor:$<$p$>$%c",10);
printf("$<$ul$>$%c",10);

for(x=0; x $\leq$ m; x++)
printf("$<$li$>$ $<$code$>$%s $=$ %s$<$/code$>$%c",entries[x].name,
entries[x].val,10);
printf("$<$/ul$>$%c",10);
}


next up previous contents
Next: El fichero cgi_util.c Up: Código CGI Ejemplo Previous: Código CGI Ejemplo   Índice General
Jesús Vegas 2003-03-13