/**************************************************************/ /* get.c程式 */ /* 此CGI程式只是用於以GET為ACTION */ /**************************************************************/ #include #include #include #define BUFFER_LENGTH 2048 /* 定義資料暫存區的總長度 */ #define END_OF_STRING 0x00 /* 定義字串的結束字元 */ typedef struct{ /* 定義一個資料結構 */ char Name[20]; char Value[20]; }Data; /* 結構名稱為Data */ int main() /* 程式開始 */ { Data UserName; /* 宣告UserName結構 */ Data UserEmail; /* 宣告UserEmail結構 */ Data UserTel; /* 宣告UserEmail結構 */ Data UserFax; /* 宣告UserEmail結構 */ char Temp[40]; /* 宣告Temp陣列 */ char *Buffer; /* 宣告對照Query_String的指標*/ char *Method; /* 宣告Method指標 */ char *Address; /* 宣告Address指標 */ char ch; int length; int i,x; Method=getenv("REQUEST_METHOD"); Address=getenv("REMOTE_ADDR"); Buffer=getenv("QUERY_STRING"); printf("Content-type:text/html%c%c",10,10); for(i=0,x=0;((*(Buffer+i)!='=')&&(*(Buffer+i)!=0x00));i++,x++) Temp[i]=*(Buffer+i); Temp[x]=0x00; for(++i,x=0;((*(Buffer+i)!='&')&&(*(Buffer+i)!=0x00));i++,x++) UserName.Value[x]=*(Buffer+i); UserName.Value[x]=0x00; for(++i,x=0;((*(Buffer+i)!='=')&&(*(Buffer+i)!=0x00));i++,x++) { } for(++i,x=0;((*(Buffer+i)!='&')&&(*(Buffer+i)!=0x00));i++,x++) UserEmail.Value[x]=*(Buffer+i); UserEmail.Value[x]=0x00; for(++i,x=0;((*(Buffer+i)!='=')&&(*(Buffer+i)!=0x00));i++,x++) { } for(++i,x=0;((*(Buffer+i)!='&')&&(*(Buffer+i)!=0x00));i++,x++) UserTel.Value[x]=*(Buffer+i); UserTel.Value[x]=0x00; for(++i,x=0;((*(Buffer+i)!='=')&&(*(Buffer+i)!=0x00));i++,x++) { } for(++i,x=0;((*(Buffer+i)!='&')&&(*(Buffer+i)!=0x00));i++,x++) UserFax.Value[x]=*(Buffer+i); UserFax.Value[x]=0x00; printf("
ALL_Std_Input_String==>%s
",Buffer); printf("Tempe=%s
",Temp); printf("UserName=%s
",UserName.Value); printf("UserEmail=%s
",UserEmail.Value); printf("UserTel=%s
",UserTel.Value); printf("UserFax=%s
",UserFax.Value); }