PHP에서 HTML 문서로 부터 변수값을 받을 때는 form태그를 통하여 변수를 전달하게 됩니다. 사용자들이 흔히 회원가입을 한다던가 게시판에 글을 쓸때 보게 되는 페이지가 form태그로 이루어져 있다고 보시면 됩니다. form태그에서는 action이란 속성값을 통해 폼에 있는 변수 값을 어떤 페이지로 전달할지를 결정하고 method란 속성값을 통해 POST로 보낼지 GET으로 보낼지를 결정하게 됩니다. 여기서 POST방식과 GET방식을 간단하게 살펴보면 아래와 같습니다. (아래의 특성을 보면서 각각의 경우에 맞게 form 태그의 method를 설정해서 쓰면 되겠습니다.)
POST
  • GET에 비해 보안에 강하다.
  • 변수값 길이에 제약이 없다.
  • 주로 장문의 텍스트나 보안에 민감한 사항에 대하여 통신을 할 때 사용된다.
GET
  • 변수가 URL에 포함된다.
    • "?"뒤로 변수명=값 형식으로 포함
    • 변수가 여러개일 때 "&"기호로 구분
  • 보통 256자(256바이트)정도 전송 가능
  • 검색 또는  게시판등의 페이지에서 주로 쓰인다.
        ex) http://www.handkstory.net/phptest.php?dk=senior&var1=10
  form태그를 구성하는 주요 태그로는 input 태그가 있습니다. input 태그는 type이란 속성값을 갖고 있는데 이 type 값에 따라 화면에 다르게 보여집니다. input 태그 외에도 select와 textarea 태그도 많이 사용합니다.
<input type=
  • text : 기본값으로써 일반 텍스트 입력창을 생성합니다.

  • ex) <input type="text"> -> 
  • password : 암호화된 텍스트 입력창을 생성합니다.

  • ex) <input type="password"> ->
  • radio : 라디오 버튼을 생성합니다. 라디오 버튼은 여러개의 메뉴중 하나만 선택할 수 있습니다.

  • ex) <input type="radio">라디오 버튼 -> 라디오 버튼
  • checkbox : 체크 박스 버튼을 생성합니다. 체크박스 버튼은 여러개의 메뉴중 여러개를 선택할 수 있습니다.

  • ex) <input type="checkbox">체크박스 버튼 -> 체크박스 버튼
  • button : 버튼을 생성합니다.
  • ex) <input type="button"> ->
  • submit : submit버튼을 생성합니다. submit 버튼을 클릭하면 form태그의 action에 정의된 페이지로 form에서 작성된 변수 값들을 전송합니다.

  • ex) <input type="submit"> ->
  • reset : reset 버튼을 생성합니다. reset버튼을 클릭하면 form 태그안에 입력된 모든 값들을 초기화 시킵니다.

  • ex) <input type="reset"> ->
select
  클릭하면 사용자가 선택할 수 있는 콤보박스를 생성합니다. 코드는 <select>태그 내부에 <option>태그를 추가해서 만들 수 있습니다.
<select>
    <option value="1">1학년</option>
    <option value="2">2학년</option>
    <option value="3">3학년</option>
    <option value="4">4학년</option>
</select>

ex)
textarea
  장문의 텍스트를 입력 받을 수 있는 텍스트 박스를 생성합니다.
ex) <textarea></textarea> ->

    이런 요소들을 적절히 섞어서 폼을 구성하면 사용자로 부터 특정 값을 받을 수 있는 인터페이스 역할을 하는 페이지가 완성됩니다. 여기서 중요한 것은 각각의 input 태그나 select 태그 또는 textarea태그는 name이란 속성값에 다른 태그들과는 겹치지 않는 특별한 값을 써줘야 후에 PHP나 다른 서버 사이드 언어에서 사용할 수 있습니다. 오늘 낮에 실습시간에 id와 name을 잘못 설명했는데 id와 name 속성의 차이는 아래와 같습니다.
id : 주로 자바스크립트 같은 클라이언트 사이드에서 사용된다.
name : 주로 서버스크립트에서 사용된다.
  그럼 위에서 열거한 form 태그를 가지고 간단한 html 폼을 만들어 보겠습니다.
<html>
<head>
<title>:::: 회원가입 폼 ::::::</title>
</head>
<body>

<!--inputForm태그를 선언합니다. action 대상은 memPrint.php이고 통신방식은 POST입니다. -->
<form id="inputForm" action="memPrint.php" method="POST">
<center>회원가입
<table border=1>
    <tr>
        <td>아이디</td>
        <td><input type="text" name="id"/></td>
    </tr>
    <tr>
        <td>패스워드</td>
        <td><input type="password" name="pw"/></td>
    </tr>
    <tr>
        <td>이름</td>
        <td><input type="text" name="name"/></td>
    </tr>
    <tr>
        <td>주소</td>
        <td><input type="text" name="address"/></td>
    </tr>
    <tr>
        <td>성별</td>
        <!--라디오 버튼은 같은 name값을 갖고 있어야 하나만 선택됩니다.-->
        <td><input type="radio" name="gender" value="Male" checked>남<input type="radio" name="gender" value="Female">여</td>
    </tr>
    <tr>
        <td>취미</td>
        <!--체크박스 버튼은 복수개 선택이 가능하긴 하지만 같은 name값을 갖고 있어야 합니다.-->
        <td><input type="checkbox" name="hobby" value="음악감상">음악감상<input type="checkbox" name="hobby" value="영화감상">영화감상<input type="checkbox" name="hobby" value="아이쇼핑">아이쇼핑</td>
    </tr>
    <tr>
        <td>자기소개</td>
        <td><textarea id="intro" name="intro">자기소개를 입력하세요</textarea></td>
    </tr>
</table>
<input type="submit" value="확인"/>
<input type="reset" value="새로작성"/>
</center>
</form>
</body>
</html>
위에서 작성한 페이지는 간단한 회원 가입 폼입니다. 이제 여기서 입력받은 값들을 처리할 memPrint.php(form 태그의 action 속성값으로 정해준 페이지)를 작성해야 합니다. 아직 DB부분 까지는 학습하지 않았으므로 받은 값을 화면에 출력하는 페이지를 만들어 보겠습니다.
  PHP에서는 $_POST[변수명], $_GET[변수명] 이런 식으로 POST와 GET방식의 변수를 받게 됩니다. 하지만 $_REQUEST[변수명]을 사용하면 POST와 GET방식 둘다 받을수 있습니다.
<html>
<head>
<title>:::: 회원가입 폼 ::::::</title>
</head>
<body>
<center>회원가입
<table border=1>
    <tr>
        <td>아이디</td>
        <td><?=$_REQUEST[id]?></td>
    </tr>
    <tr>
        <td>패스워드</td>
        <td><?=$_REQUEST[pw]?></td>
    </tr>
    <tr>
        <td>이름</td>
        <td><?=$_REQUEST[name]?></td>
    </tr>
    <tr>
        <td>주소</td>
        <td><?=$_REQUEST[address]?></td>
    </tr>
    <tr>
        <td>성별</td>
        <td><?=$_REQUEST[gender]?></td>
    </tr>
    <tr>
        <td>취미</td>
        <td><?=$_REQUEST[hobby]?></td>
    </tr>
    <tr>
        <td>자기소개</td>
        <td><?=$_REQUEST[intro]?></td>
    </tr>
</table>
</center>
</body>
</html>
  <?=$_REQUEST[id]?> 이 태그는 <? echo $_REQUEST[id]; ?>와 같습니다. php는 서버 사이드 언어이므로 항상 예제 소스는 서버 환경에서 실행하도록 합니다. 서버 환경에서 처음 작성한 html문서를 열어보면 아래와 같습니다.
  html 페이지에서 내용을 입력하고 확인 버튼을 눌러보면 아래와 같은 화면을 확인 하실 수 있을 것입니다.
  오늘 실습 준비가 미비하여 진행이 매끄럽지 못했던 점 죄송하게 생각합니다. 늦게나마 이 자료가 도움이 되길 바랍니다. :-)
저작자 표시
신고
Posted by 제소

댓글을 달아 주세요

  1. 홍석진 2009.04.14 01:42 신고  댓글주소  수정/삭제  댓글쓰기

    공부하는데 도움이 되었습니다 .ㄳ합니다.^^



티스토리 툴바