#include
stdio.h
#include
stdlib.h
#include "
cgi_util.c"
#define MAX_ENTRIES 10000
typedef struct {
char 
name;
char 
val;
} entry;
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 debe ser referenciado con el metodo POST.
n");
exit(1);
}
if(strcmp(getenv(
"CONTENT_TYPE"),
"application/x-www-form-urlencoded")) {
printf(
"Este script solo puede ser usado para decodificar formularios .
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

m; x++)
printf(
"
li
code
%s
%s
/code
%c",entries[x].name,
entries[x].val,10);
printf(
"
/ul
%c",10);
}