7.Form Tag


7.2 POST METHOD

  또다른 방식으로 POST방식이 있는데, 이 역시도 최종적으로 CGI로 들어온 정보의 형태는 동일하지만, GET방식과 다른 점은 전달되는 방식이다. 일단 앞에서 이용한 get.html파일을 복사해서 post.html파일을 만든다. 대신, 아래와 같이 붉은 색으로 지정된 부분만 바꿔준다.

<HTML><BODY>
<FORM METHOD=POST ACTION="../cgi-bin/sample/post.cgi">
userid : <INPUT TYPE=text NAME=userid><BR>
passwd : <INPUT TYPE=password NAME=passwd><BR>
animal : <SELECT NAME=animal>
           <OPTION>lion
           <OPTION>tiger
           <OPTION>monkey
         </SELECT><BR>
area   : <INPUT TYPE=radio NAME=area VALUE=seoul> Seoul
         <INPUT TYPE=radio NAME=area VALUE=pusan> Pusan<BR>
config : <INPUT TYPE=checkbox NAME=conf1 VALUE=111> 111
         <INPUT TYPE=checkbox NAME=conf2 VALUE=222> 222<BR>
comment: <TEXTAREA NAME=comment></TEXTAREA><BR>
<INPUT TYPE=submit>
</FORM>
</BODY></HTML>


  이제 post.cgi라는 실행파일은 다음의 source를 가지고 컴파일하여 작성토록하자.

#include <stdio.h>

main()
{
    char ch;

    printf("Content-type: text/html\n\n");

    printf(" INPUT <HR>\n");

    while(1){
       fscanf(stdin,"%c", &ch);
       if( feof(stdin) ) break;
       printf("%c", ch);
    }
}


  실행결과는 당연히 GET방식이든 POST방식을 똑같다. 단지 다른 점은 표준 입력(stdin)으로 들어오기 때문에 일반 파일 포인터( FILE *stdin )처럼 다뤄주면 된다.   자, 이제 필요한 것은 이렇게 name=value형식으로 들어오는데, 인코딩 (%FF형식) 된 형식까지 원래형식으로 되돌려서 배열에 넣어주는 함수를 만들면 된다.

  그러나, 아주 다행스럽게도, 그런함수들이 이미 존재한다. (머리 좋은 사람들이 다 만들어 놨다. ) 그 함수들을 다음장에서 배워보도록 하자.

- Last Update : 2001.7.9 by Deadfire(http://www.deadfire.net)

CGI with C 기초
서 언
준 비
용어 설명
기초 실습
기초 이론
작동 원리
Form Tag
     - GET METHOD
     - POST METHOD
Common Founction

Copyright ⓒ 1997 ~, Deadfire Program Master