mirror of
https://github.com/NishiOwO/ncsa-httpd.git
synced 2025-04-21 08:44:40 +00:00
62 lines
1.6 KiB
C
62 lines
1.6 KiB
C
|
|
|
|
|
|
#include <stdio.h>
|
|
#ifndef NO_STDLIB_H
|
|
#include <stdlib.h>
|
|
#else
|
|
char *getenv();
|
|
#endif
|
|
#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);
|
|
|
|
|
|
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("This script should be referenced with a METHOD of POST.\n");
|
|
printf("If you don't understand this, see this ");
|
|
printf("<A HREF=\"http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html\">forms overview</A>.%c",10);
|
|
exit(1);
|
|
}
|
|
if(strcmp(getenv("CONTENT_TYPE"),"application/x-www-form-urlencoded")) {
|
|
printf("This script can only be used to decode form results. \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("<H1>Query Results</H1>");
|
|
printf("You submitted the following name/value pairs:<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);
|
|
}
|