hiddenform.c

来自「JAVA分布式程序学习的课件(全英文)」· C语言 代码 · 共 76 行

C
76
字号
/* hiddenForm.c - source code for hiddenForm.cgi
   Author: M. L. Liu.
   This script dynamically generates a web page which
   contains hidden form fields which contain the name-
   value pairs received in the query string.  
*/ 

#include <stdio.h>
#ifndef NO_STDLIB_H
#include <stdlib.h>
#else
char *getenv();
#endif

#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 used with a POST METHOD.\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,'=');
    }
    /* generate a dynamic form which contains hidden form fields */
    printf("<FORM method=\"post\" action=\"hiddenForm2.cgi\">");
    printf("<H@>This form was dynamically generated by ",
           "hiddenForm.cgi</H2>");
    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);

    /* now put each name-value pair in a hidden form field */      
    for(x=0; x <= m; x++)
      printf("<INPUT TYPE=\"HIDDEN\" NAME=%s VALUE=%s>\n",
              entries[x].name, entries[x].val);

    printf("Press <input type=\"submit\" value=\"here\"> to ",
           "submit your query.");
    printf("<HR>");
    printf("</FORM>");
    printf("</BODY>");
    printf("</HTML>");

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?