7.Form Tag


7.1 GET METHOD

  먼저, 다음과 같은 get.html파일을 준비한다. ( http://www.deadfire.com/get.html 로 접근할 수 있도록, /user/deadfire/밑에 준비한다. )

<HTML><BODY>
<FORM METHOD=GET ACTION="../cgi-bin/sample/get.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>


  위와 같이 작성하여 브라우저로 보게 되면 다음에 나타난 것과 같은 화면이 나타날 것이다. 여기에 임의의 값을 마구 넣어보자. 본인은 다음과 같이 일단 값을 넣어 줬다.



  다음에는 http://www.deadfire.com/cgi-bin/get.cgi라는 실행 파일은 다음의 source대로 작성한다. ( 실제는 /user/deadfire/bin/get.cgi )

#include <stdio.h>

main()
{
     printf("Content-type: text/html\n\n");
     printf(" INPUT <HR>\n");
     printf("%s", getenv("QUERY_STRING"));
}


  실행파일을 다 만들었으면 Submit버튼을 누르고 결과를 살펴보자. 결과는 다음과 같다.

INPUT
userid=deadfire&passwd=deadfire&animal=lion&area=seoul&conf1=111&comment=111111111


  앞에서 얘기 했듯이 GET방식이므로 getenv("QUERY_STRING")으로 입력된 값이 들어오게 된다. 절대로 argv[1]이 아니다.( 앞장에서 강조했듯이 & 마크가 중간에 나타났으므로, 환경변수로만 들어간다.) 즉, 웹서버가 자동으로 바꿔서 넘겨준다고 봐야 한다. 야후도 사실은 이방법을 사용한 것이다.

  여기서 눈여겨봐야 할 것은 HTML파일에서 FORM Tag로 뭐가 지정됐든, 결국 CGI로 넘어오는 값은 다 똑같이 name=value형식을 띈다는 점이다.

- 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