4.HTML활용


4.3 FORM

  FORM Tag는 HTML문서안에 사용자의 입력사항을 수용할 수 있는 버튼, 라디오 버튼, 선택박스등과 같은 것들을 출력할 수 있게 된다. 이러한 화면의 요소들로부터 사용자 입력을 얻어서 서버로 전달하게 된다. 아래의 문법에서 ACTION부분에 입력된 부분이 바로 실행파일인 CGI파일의 이름이다. 그 실행파일에 사용자가 입력한 정보가 전달되는 것이다.

  • 기본 문법

    <FORM METHOD="POST" ACTION="cgi-program-name">

      <INPUT TYPE=type NAME=name VALUE=value>
      ......................
      <INPUT TYPE=type NAME=name VALUE=value>
    </FORM>

      사용자 입력처리   앞에서 사용자의 입력을 받는 부분을 FORM태그 안에 있는 항목들(elements)에서 받는 것이고, 이를 서버로 전달하는 역할은 브라우저가 하게 된다. 그리고, 이에 대한 처리는 CGI프로그램이 진행해야 하는 것으로, HTML문서만 만든다고 해서 처리될 수 있는 것은 아니다. 자세한 사항은 CGI with C강좌를 참조하라.


  • METHOD

      브라우저가 사용자가 FORM태그 안에 작성한 내용을 웹 서버로 전달하는 방법에는 GET, PUT, HEAD, DELETE등이 있으나 이중에 실제로 사용되는 방법은 GET, POST방식 뿐이다. 그럼 GET방식과 POST방식에 대해서 살펴보도록 하자.

    • GET : 코드화 되어 서버에 전달될 때, 환경변수에 저장이 된다. QUERY_STRING이라는 환경변수에 저장된 상태로 CGI 프로그램이 수행되는 것이다. C언어로 작성할 때는 다음과 같이 정보를 얻을 수 있다.
      char str[LNG];
      str = getenv("QUERY_STRING");
      그러나, 환경변수에 저장할 수 있는 길이가 한정되어있기 때문에 긴 문자처리에 부적합하며, 사용자 브라우저의 주소란에 사용자가 입력한 내용이 그래도 출력되어 북마크 될수있는 단점도 가지고 있다.

    • POST : browser가 보내는 정보가 표준 입력(stdin)을 통해서 CGI프로그램으로 직접 전달된다. 가장 보편적인 방식으로 입력된 길이에 제한이 없다. 즉, C언어의 경우 다음과 같은 방식으로 읽어들이면 된다.
      char str[LNG];
      fgets(str, LNG, fp);
  • EXAMPLE

    Text <INPUT TYPE=text>
    Password <INPUT TYPE=password>
    FILE <INPUT TYPE=file>
    TextArea <TEXTAREA rows=3></TEXTAREA>
    Select Box <SELECT>
      <OPTION>Orange</OPTION>
      <OPTION>Apple</OPTION>
      <OPTION>Pear</OPTION> </SELECT>
    Radio Button <INPUT TYPE=radio NAME=r1> YES
    <INPUT TYPE=radio NAME=r1> NO
    YesNo
    Check Box <INPUT TYPE=checkbox>FILE
    <INPUT TYPE=checkbox>DB
    FILE DB
    BUTTON <INPUT TYPE=button VALUE=OK>
    Submit <INPUT TYPE=submit>
    Reset <INPUT TYPE=reset>
    Hidden <INPUT TYPE=hidden> Hidden의 경우 보이지는 않지만 값은 서버로 전달될때 사용한다.
    IMAGE <INPUT TYPE=image src=nuclear.gif>
  • FILEUPLOAD

      앞에서 FORM의 속성중에서 ENCTYPE이 빠져 있다. Default로 application/x-www-form-urlencoded형태의 MIME Type으로 웹 서버로 전달된다. 그러나, INPUT의 TYPE=file인 경우에는 파일이 브라우저로부터 웹서버로 전달되기 때문에 그때는 ENCTYPE을 multipart/form-data로 지정해야 파일이 제대로 전달된다. 웹 서버에서 이를 처리하는 CGI프로그램을 개발할때 이에 맞게 적절한 방법으로 처리해야만 가능하다는 점.

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

HTML 강좌
HTML이란?
웹서버 작동원리
HTML 기초
     - 전체 구조
     - 기본 태그
     - 속성 추가
     - Link/Anchor
     - 목록 Tag
     - 문자와 스타일
     - 기타 Tag
     - 특수 문자 표기
     - 이미지 표기
HTML 활용
     - Table
     - Frame
     - Form
     - Elements
기 타
     - MIME Type
     - 이미지 맵
     - 클라이언트 풀
마치며

Copyright ⓒ 1997 ~, Deadfire Program Master