소스전부는 아닙니다...다 올리려면 너무 길어서...ㅡ.ㅡ("util.h"라는 소스
는 따로 있습니다..)
지금도 상당히 길어서 볼실지도 모르겠네요...
아무튼 보아웹서버에서 돌리는 상태구요...abc.htm이라는 것을 제일 먼저 읽어
들이면 guest.cgi 라는 액션을 하면 그것으로 읽어들어야 합니다..
근데, 이상한 글자들만 주욱 나와버리고...인자값인 value는 NAME과 HEAD는 웹
브라우저의 주소창에 http://192.168.10.2/guest.cgi?NAME=인자값1&HEAD=인자
값2라고 찍혀나오는데. 그 밑에 창에는 텍스트파일처럼 나와버리네요..
컴파일은gcc -o guest.cgi guest.c 라고 했구요...
또, chmod 777 guest.cgi 라고 했습니다

p.s 드뎌 제품목록에 제품이 많이 등장했네요..^^ 츄카드려요..많이 발전하시
길...
그리고, 강좌많이 써줬으면...ㅋㅋ

-------------------abc.htm---------------------------------
웹서버테스트


UART TEST


테스트입니다...





NAME size=40>
제목 size=56 maxlength=57>





---------------------여기까지...the end---------------------------




---------------------여기부터 guest.cgi-------------------------------
#include
#include
#include
#include
#include
#include
#include "util.h"

//먼저 앞으로 쓰일 구조체를 먼저 선언해 둔다.
typedef struct {
char *name;
char *val;
}entry;

typedef struct{

char NAME[100]; // 이름이 들어갈 장소
char HEAD[1000];// 주제가 들어갈 장소
}info;

//다음에 있는 get_method함수가 get방식에 따라 내용이 걸러지는 함수임
void get_method(entry entries[], int *get_cell_count)
{
int x,i;
char c12[500];

if(strcmp(getenv("REQUEST_METHOD"),"GET")) //GET방식 시작..
{
printf("get방식이 아니네요.....");
exit(1);
}


strcpy(c12,getenv("QUERY_STRING"));
for(x=0;c12[0] !=' ';x++){
*get_cell_count=x;
getword(entries[x].val,c12,'&');//'&'에 따라 변수와 그내용 함께 분리
plustospace(entries[x].val); //'+'를 공백으로 변환
unescape_url(entries[x].val); //16진수를 한글로 변환
getword(entries[x].name,entries[x].val,'='); //마지막으로 변수와 내용
분리
}
//여기에서 마지막 getword함수에서는 entries[x].name에 변수가 들어가고
// entries[x].val에 그 내용이 들어 가게 되는 것이다.


}//get_..함수 끝나는 괄호

int main(int argc, char **argv)
{
int count,i;
// 구조체 선언
entry entries[20];
info ginfo;

printf("Content-type: text/html%c%c",10,10);//cgi 초기화

get_method(entries,&count); //GET방식 함수 부르기

// 내용 끼워 맞추기......
for(i=0;i <3;i++){
if(strcmp(entries[i].name,"NAME")==0) sprintf
(ginfo.NAME,"%s",entries[i].val);
if(strcmp(entries[i].name,"HEAD")==0) sprintf
(ginfo.HEAD,"%s",entries[i].val);
}
//들어온 내용을 다시 html문서로 반환 하기.
printf("cgi 테스트 1");
printf("");
printf("<1h>이름:%s
",ginfo.NAME);
printf("<1h>주제:%s
",ginfo.HEAD);
printf("");
return 0;
}
------------------여기까지...----------------------------------