home *** CD-ROM | disk | FTP | other *** search
-
-
-
- #include <stdio.h>
- #include <stdlib.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);
- }
-