parse.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main() {
int i,flag,numvar;
char *input,*cp1,*cp2,*myvar[10],*myval[10];
char inputs[1000];
gets(inputs);
input=inputs;
printf("Content-type: text/html\n\n");
printf("<html>\n<head><title>Parsing parameters from GET method</title></head>\n");
printf("<body bgcolor=#ffffff>\n<h1>The parameters for this CGI:</h1>\n");
if (strlen(input)==0)
printf("No parameters entered!\n");
else {
flag=1;
numvar=0;
while (flag) {
myvar[numvar]=input;
cp1=strchr(input,'=');
cp2=strchr(input,'&');
if(cp2==NULL) {
flag=0;
cp2=input+strlen(input);
}
input=cp2+1;
myval[numvar]=cp1+1;
cp1[0]=0;
cp2[0]=0;
numvar++;
}
for (i=0;i<numvar;i++)
printf(" variable <b> %s </b> = %s <br>\n",myvar[i],myval[i]);
}
printf("<hr> Thank you user from %s.<br>\n",getenv("REMOTE_ADDR"));
printf("%s wishes you Good Luck with your CGI programming.<br>\n",getenv("SERVER_NAME"));
printf ("</body>\n</html>\n");
}