HTML FORM과 배열


웹데이터베이스 구축 및 실습
FORM
• HTML의 태그 중에 하나
  • <FORM>…</FORM>
• 사용자로부터 값을 입력 받을 수 있는 방법
• 하위 Form 요소에 대한 콘테이너

      <FORM NAME="폼이름"
         ACTION="데이터를 보낼 주소"
         METHOD="전송방식“
         ENCTYPE=“암호화방식”>
        하위 FORM 요소
      </FORM>

한림대학교 웹데이터베이스 - 이윤환
FORM
Form 태그의 속성.
 • NAME : HTML 문서 내에서 구별지을 이름
 • ACTION
      • 사용자가 입력한 폼 정보를 전달할 주소를 지정하는 항목.
      • 데이터를 전달받는 주소는 반드시 PHP와 같은 서버 스크립트 파
        일이어야 함.
 • METHOD
      • 데이터를 전달하는 방식을 정의
      • POST와 GET 방식이 있음.
          • POST : HTTP 바디(Body)에 데이터를 실어 보냄.
          • GET : URL을 통해 데이터를 전달.
 • ENCTYPE
      • 폼 데이터의 인코딩(encoding) 방법 지정.
      • 데이터 전송 방식이 POST일 경우에만 적용됨.
      • application/x-www-form-urlencoded 와 multipart/form-data 두 가
        지 종류가 있음.



한림대학교 웹데이터베이스 - 이윤환
FORM : GET VS. POST
GET 방식 : URL로 전달 (길이 제약)
 • 파일 이름 다음에 물음표(?) 기호를 사용하여 “?변수명=전달될 값”
   과 같은 방식으로 동작.
      • ex: /index.php?name=brown
 • 두 개 이상의 값을 전달하고자 할 때는 & 기호를 통해 전달.
      • ex: ?name=brown&homepage=http://ezphp.net
POST 방식 : REQUEST BODY를 통해 전달
 • 데이터의 길이에 대한 제약이 없어 매우 큰 용량의 정보 전송 시 사
   용 가능.
      • PHP 설정에서 POST 방식으로 전송할 수 있는 크기를 제한하
        고 있음.
      • php.ini 파일에서 max_post_size 값을 조절하여 제한을 변경
        할 수 있음.


한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <INPUT>




한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <INPUT>
Text Type
 • 한 줄짜리의 Text 입력상자를 만든다(최대 255자).
 • <INPUT TYPE="text" NAME="email" VALUE="id@domain"
   SIZE="40" MAXLENGTH="50">
      • NAME : 전달될 Form의 이름(전달받는 PHP File에서는 변수명이된
        다.)
      • VALUE : 초기값
      • MAXLENGTH : 최대길이
      • SIZE : 박스의 길이

PASSWORD
 • Text와 동일하나 입력시 문자열이 ***로 나타난다.
 • Example : inputPwd.html




한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <INPUT>
HIDDEN
 • Browser에는 나타나지 않으며 미리 정한 값이
   전달된다.
 • Source 보기로는 나타난다.

SUBMIT
 • Form이 전달된다.

RESET
 • 입력한 Form의 값을 모두 지운다.

한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <INPUT>
RADIO
 • 여러 개의 선택요소중 한 개만 선택한다.
    <INPUT TYPE=“RADIO” NAME=“gender” VALUE="M"
      checked>남성
    <INPUT TYPE=“RADIO” NAME=“gender” VALUE="F"> 여성
 • checked : 기본 선택 값에 붙힌다.
 • 여러 개의 구성요소는 동일한 NAME을 통해
   Group이 이루어 지고 실제 전달되는 값은
   VALUE에 의한 값이 전달된다.
 • Example : inputRadio.html


한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <INPUT>
CHECKBOX
 • 여러 개의 구성요소를 선택하는 데 사용한다.
    <INPUT TYPE=“CHECKBOX” NAME=“check1” VALUE=“win98”
      checked> win98
    <INPUT TYPE=“CHECKBOX” NAME=“check2”
      VALUE=“win2k”> win2k
 • NAME이 동일할 경우 나중에 선택된 변수만 선택이 된다.
    • Checkbox는 사용자가 어떤 것을 선택할 지 모르므로 어떤 값
      을 선택했는지 알려면 어떻게 해야 할까?
    • 다음 예제를 강의 보조 자료에서 확인바랍니다.
    • Example : check-from.php, check.php




한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <TEXTAREA>
TEXTAREA
 • 여러줄에 걸친 Text를 입력받는다.
    <TEXTAREA NAME="comment" ROWS="4"
      COLS="30" >기본값</TEXTAREA>
    • ROWS : Text 입력 상자의 줄 수
    • COLS : Text 입력 상자의 열 수
    • Example : inputTextArea.html




한림대학교 웹데이터베이스 - 이윤환
FORM 하위 요소 : <SELECT>
SELECT
 • 여러 개의 구성 요소중 선택한다.
 • 구성 요소는 <option>을 이용하여 지정한다.
 • 전달되는 것은 역시 value의 값이 전달
     <select name="age">
       <option value="10">10 - 20세 사이</option>
       <option value="20" selected>21 - 30세 사이
       </option>
     </select>
     • SELECTED : 미리 선택된 요소
 • Example : inputSelect.html


한림대학교 웹데이터베이스 - 이윤환
배열
“변수 보따리”
 • PHP 프로그래밍에서 유용하게 사용할 수 있는 자료형.
    - PHP에서는 다양한 배열 함수가 제공되어 편리함.
 • 하나 이상의 데이터를 저장할 수 있음.
                               <?php
    - 배열 속에 배열을 다시 저장할 수 있음.     $a[0]="abc";
                                        $a[1] ="def";
                                        $b["foo"]=13;
                                      ?>
배열의 구조
 • 기존 변수 이름 뒤에 “[인덱스]”를 덧붙인 모양을 가짐.
     • 하나의 변수 이름에 여러 가지의 값을 가지기 때문에 “배열의 몇 번째 값”과
       같은 뜻의 인덱스를 사용함.
     • 두 값의 구분은 [0],[1] 등으로 몇 번째에 저장되어 있는지를 표기하여 구분.
 • 숫자 인덱스를 사용하지 않고 사용자가 지정한 구분자를 두어 배열
   의 값을 구분할 수 있음

한림대학교 웹데이터베이스 - 이윤환
배열
배열의 선언과 할당
 • $array[0] = “Professional”;
 • $array[arr] = “Preprocessor”;
 • $array = array(“Professional”, “Hypertext”, “Preprocessor”);
 • $array = array(“first” => “Professional”);




한림대학교 웹데이터베이스 - 이윤환
배열
배열의 종류
 • 일반 배열(Index사용 : 숫자에 의한 접근)
      • 할당 : $fruit = array(“사과”, “배”, “복숭아”, “딸기”);
      • 사용 : $fruit[0];
 • 연관 배열(Key 사용 : 문자열로 접근)
      • 할당 : $phone = array(“home” => “123-4567”, “office” =>
        “765-4321”);
      • 사용 : $phone[“home”];
 • Example : arrex.php

관련 함수
 • array array ( [mixed ...])
 • bool print_r ( mixed expression [, bool return] )
       • Example : print_r.php



한림대학교 웹데이터베이스 - 이윤환
배열 관련 함수
http://www.php.net/manual/en/ref.array.php
정렬하기 : 낮은 값에서 높은 값으로 정렬
 • sort : 배열의 값에 따라 정렬한다.
      • bool sort ( array &array [, int sort_flags] )
      • sort_flags는 PHP4 부터 추가된 상수로 다음과 같다.
         • SORT_REGLUAR : 일반적인 방법으로 원소 비교(자료형을 바꾸지 않
           는다.)
         • SORT_NUMERIC : 숫자형으로 비교
         • SORT_STRING : 문자열형으로 비교
      • 정렬을 한 후의 Index는 값의 순서에 맞춰진다.
 • asort : 연관 배열의 값에 따라 정렬한다.
      • bool asort ( array &array [, int sort_flags] )
      • 정렬을 한 후의 Key는 값이 원래 가지고 있는 key를 유지한다.(키와
        데이터의 연관성 유지)


한림대학교 웹데이터베이스 - 이윤환
배열 관련 함수
 • ksort : 연관배열의 Key에 따라 정렬한다.
      • bool ksort ( array &array [, int sort_flags] )
      • 키와 데이터의 연관성 유지

 • Ex. sort.php
      • 다음의 코드를 실행 시키면 어떤 결과가 나오리라 예상되나?
      • 본인의 예상과 일치하는지 반드시 강의보조자료를 통해 확인하기바
        랍니다.
          <?php
          $arr = array(“orange”, “apple”, “lemon”);
          $arr2 = array(“yellow”=>”lemon”, “red”=>”apple”,
                          “orange”=>”orange”);
          print_r($arr);
          print_r(sort($arr));
          print_r($arr2);
          print_r(asort($arr2));
          print_r($arr2);
          print_r(ksort($arr2));
          ?>


한림대학교 웹데이터베이스 - 이윤환
배열 관련 함수
배열 재배치
 • shuffle : 배열을 임의대로 섞는다.
     • bool shuffle ( array &array )
     • 임의로 배열을 섞기 위해 PHP 4.2.0 미만에서는 srand()와 mt_srand()
       를 이용해서 난수값 생성기를 초기화하여야 하나 4.2.0 이상부터는
       난수값 생성기 초기화.
 • array_reverse : 배열을 받아서 역순으로 저장한 배열 반환.
     • array array_reverse ( array array [, bool preserve_keys] )
         • preserve_key가 TRUE일 경우 키를 보존한다.
             • 인덱스를 0, 1, 2를 가지는 배열을 array_reverse(배열명, TRUE)라
                고 하면 인덱스도 2, 1, 0 이런 식으로 역순으로 갖는다.
 • array_flip : 배열의 키와 해당 값을 서로 바꾼 배열 반환.
     • array array_flip ( array trans )
     • 키와 값을 바꿀때 서로 같은 값이 있는 배열의 경우 충돌이 일어나게
       되고 가장 마지막에 바꾼 것만 결과로 남는다.


한림대학교 웹데이터베이스 - 이윤환
배열 관련 함수
배열의 기본 정보
 • count : 배열의 원소의 개수를 반환한다.
      • int count ( mixed var [, int mode] )
      • http://www.php.net/manual/pt_BR/function.count.php
 • array_keys : 배열의 모든 키를 배열로 반환한다.
      • array array_keys ( array input [, mixed search_value] )
      • http://www.php.net/manual/pt_BR/function.array-keys.php
 • array_values : 배열의 모든 값들을 반환한다.
      • array array_values ( array input )
      • http://www.php.net/manual/pt_BR/function.array-values.php
 • Ex. array_info.php




한림대학교 웹데이터베이스 - 이윤환
배열 관련 함수
배열 탐색 함수
 • current : 현재의 배열 커서(포인터)가 가리키는 원소 반환
      • http://www.php.net/manual/pt_BR/function.current.php
 • reset : 배열의 내부 포인터(커서)를 처음으로 이동하고 값 반환
      • http://www.php.net/manual/pt_BR/function.reset.php
 • end : 배열의 내부 포인터를 가장 끝 원소로 이동하고 값 반환
      • http://www.php.net/manual/pt_BR/function.end.php
 • prev : 배열의 내부 포인터를 이전 원소로 이동시키고 해당 원소의
   값 반환
      • http://www.php.net/manual/pt_BR/function.prev.php
 • next : 배열의 내부 포인터를 다음 원소로 이동시키고 해당 원소의
   값 반환
      • http://www.php.net/manual/pt_BR/function.next.php
 • Ex. array_walking.php



한림대학교 웹데이터베이스 - 이윤환

HTML Form과 배열

  • 1.
  • 2.
    FORM • HTML의 태그중에 하나 • <FORM>…</FORM> • 사용자로부터 값을 입력 받을 수 있는 방법 • 하위 Form 요소에 대한 콘테이너 <FORM NAME="폼이름" ACTION="데이터를 보낼 주소" METHOD="전송방식“ ENCTYPE=“암호화방식”> 하위 FORM 요소 </FORM> 한림대학교 웹데이터베이스 - 이윤환
  • 3.
    FORM Form 태그의 속성. • NAME : HTML 문서 내에서 구별지을 이름 • ACTION • 사용자가 입력한 폼 정보를 전달할 주소를 지정하는 항목. • 데이터를 전달받는 주소는 반드시 PHP와 같은 서버 스크립트 파 일이어야 함. • METHOD • 데이터를 전달하는 방식을 정의 • POST와 GET 방식이 있음. • POST : HTTP 바디(Body)에 데이터를 실어 보냄. • GET : URL을 통해 데이터를 전달. • ENCTYPE • 폼 데이터의 인코딩(encoding) 방법 지정. • 데이터 전송 방식이 POST일 경우에만 적용됨. • application/x-www-form-urlencoded 와 multipart/form-data 두 가 지 종류가 있음. 한림대학교 웹데이터베이스 - 이윤환
  • 4.
    FORM : GETVS. POST GET 방식 : URL로 전달 (길이 제약) • 파일 이름 다음에 물음표(?) 기호를 사용하여 “?변수명=전달될 값” 과 같은 방식으로 동작. • ex: /index.php?name=brown • 두 개 이상의 값을 전달하고자 할 때는 & 기호를 통해 전달. • ex: ?name=brown&homepage=http://ezphp.net POST 방식 : REQUEST BODY를 통해 전달 • 데이터의 길이에 대한 제약이 없어 매우 큰 용량의 정보 전송 시 사 용 가능. • PHP 설정에서 POST 방식으로 전송할 수 있는 크기를 제한하 고 있음. • php.ini 파일에서 max_post_size 값을 조절하여 제한을 변경 할 수 있음. 한림대학교 웹데이터베이스 - 이윤환
  • 5.
    FORM 하위 요소: <INPUT> 한림대학교 웹데이터베이스 - 이윤환
  • 6.
    FORM 하위 요소: <INPUT> Text Type • 한 줄짜리의 Text 입력상자를 만든다(최대 255자). • <INPUT TYPE="text" NAME="email" VALUE="id@domain" SIZE="40" MAXLENGTH="50"> • NAME : 전달될 Form의 이름(전달받는 PHP File에서는 변수명이된 다.) • VALUE : 초기값 • MAXLENGTH : 최대길이 • SIZE : 박스의 길이 PASSWORD • Text와 동일하나 입력시 문자열이 ***로 나타난다. • Example : inputPwd.html 한림대학교 웹데이터베이스 - 이윤환
  • 7.
    FORM 하위 요소: <INPUT> HIDDEN • Browser에는 나타나지 않으며 미리 정한 값이 전달된다. • Source 보기로는 나타난다. SUBMIT • Form이 전달된다. RESET • 입력한 Form의 값을 모두 지운다. 한림대학교 웹데이터베이스 - 이윤환
  • 8.
    FORM 하위 요소: <INPUT> RADIO • 여러 개의 선택요소중 한 개만 선택한다. <INPUT TYPE=“RADIO” NAME=“gender” VALUE="M" checked>남성 <INPUT TYPE=“RADIO” NAME=“gender” VALUE="F"> 여성 • checked : 기본 선택 값에 붙힌다. • 여러 개의 구성요소는 동일한 NAME을 통해 Group이 이루어 지고 실제 전달되는 값은 VALUE에 의한 값이 전달된다. • Example : inputRadio.html 한림대학교 웹데이터베이스 - 이윤환
  • 9.
    FORM 하위 요소: <INPUT> CHECKBOX • 여러 개의 구성요소를 선택하는 데 사용한다. <INPUT TYPE=“CHECKBOX” NAME=“check1” VALUE=“win98” checked> win98 <INPUT TYPE=“CHECKBOX” NAME=“check2” VALUE=“win2k”> win2k • NAME이 동일할 경우 나중에 선택된 변수만 선택이 된다. • Checkbox는 사용자가 어떤 것을 선택할 지 모르므로 어떤 값 을 선택했는지 알려면 어떻게 해야 할까? • 다음 예제를 강의 보조 자료에서 확인바랍니다. • Example : check-from.php, check.php 한림대학교 웹데이터베이스 - 이윤환
  • 10.
    FORM 하위 요소: <TEXTAREA> TEXTAREA • 여러줄에 걸친 Text를 입력받는다. <TEXTAREA NAME="comment" ROWS="4" COLS="30" >기본값</TEXTAREA> • ROWS : Text 입력 상자의 줄 수 • COLS : Text 입력 상자의 열 수 • Example : inputTextArea.html 한림대학교 웹데이터베이스 - 이윤환
  • 11.
    FORM 하위 요소: <SELECT> SELECT • 여러 개의 구성 요소중 선택한다. • 구성 요소는 <option>을 이용하여 지정한다. • 전달되는 것은 역시 value의 값이 전달 <select name="age"> <option value="10">10 - 20세 사이</option> <option value="20" selected>21 - 30세 사이 </option> </select> • SELECTED : 미리 선택된 요소 • Example : inputSelect.html 한림대학교 웹데이터베이스 - 이윤환
  • 12.
    배열 “변수 보따리” •PHP 프로그래밍에서 유용하게 사용할 수 있는 자료형. - PHP에서는 다양한 배열 함수가 제공되어 편리함. • 하나 이상의 데이터를 저장할 수 있음. <?php - 배열 속에 배열을 다시 저장할 수 있음. $a[0]="abc"; $a[1] ="def"; $b["foo"]=13; ?> 배열의 구조 • 기존 변수 이름 뒤에 “[인덱스]”를 덧붙인 모양을 가짐. • 하나의 변수 이름에 여러 가지의 값을 가지기 때문에 “배열의 몇 번째 값”과 같은 뜻의 인덱스를 사용함. • 두 값의 구분은 [0],[1] 등으로 몇 번째에 저장되어 있는지를 표기하여 구분. • 숫자 인덱스를 사용하지 않고 사용자가 지정한 구분자를 두어 배열 의 값을 구분할 수 있음 한림대학교 웹데이터베이스 - 이윤환
  • 13.
    배열 배열의 선언과 할당 • $array[0] = “Professional”; • $array[arr] = “Preprocessor”; • $array = array(“Professional”, “Hypertext”, “Preprocessor”); • $array = array(“first” => “Professional”); 한림대학교 웹데이터베이스 - 이윤환
  • 14.
    배열 배열의 종류 •일반 배열(Index사용 : 숫자에 의한 접근) • 할당 : $fruit = array(“사과”, “배”, “복숭아”, “딸기”); • 사용 : $fruit[0]; • 연관 배열(Key 사용 : 문자열로 접근) • 할당 : $phone = array(“home” => “123-4567”, “office” => “765-4321”); • 사용 : $phone[“home”]; • Example : arrex.php 관련 함수 • array array ( [mixed ...]) • bool print_r ( mixed expression [, bool return] ) • Example : print_r.php 한림대학교 웹데이터베이스 - 이윤환
  • 15.
    배열 관련 함수 http://www.php.net/manual/en/ref.array.php 정렬하기: 낮은 값에서 높은 값으로 정렬 • sort : 배열의 값에 따라 정렬한다. • bool sort ( array &array [, int sort_flags] ) • sort_flags는 PHP4 부터 추가된 상수로 다음과 같다. • SORT_REGLUAR : 일반적인 방법으로 원소 비교(자료형을 바꾸지 않 는다.) • SORT_NUMERIC : 숫자형으로 비교 • SORT_STRING : 문자열형으로 비교 • 정렬을 한 후의 Index는 값의 순서에 맞춰진다. • asort : 연관 배열의 값에 따라 정렬한다. • bool asort ( array &array [, int sort_flags] ) • 정렬을 한 후의 Key는 값이 원래 가지고 있는 key를 유지한다.(키와 데이터의 연관성 유지) 한림대학교 웹데이터베이스 - 이윤환
  • 16.
    배열 관련 함수 • ksort : 연관배열의 Key에 따라 정렬한다. • bool ksort ( array &array [, int sort_flags] ) • 키와 데이터의 연관성 유지 • Ex. sort.php • 다음의 코드를 실행 시키면 어떤 결과가 나오리라 예상되나? • 본인의 예상과 일치하는지 반드시 강의보조자료를 통해 확인하기바 랍니다. <?php $arr = array(“orange”, “apple”, “lemon”); $arr2 = array(“yellow”=>”lemon”, “red”=>”apple”, “orange”=>”orange”); print_r($arr); print_r(sort($arr)); print_r($arr2); print_r(asort($arr2)); print_r($arr2); print_r(ksort($arr2)); ?> 한림대학교 웹데이터베이스 - 이윤환
  • 17.
    배열 관련 함수 배열재배치 • shuffle : 배열을 임의대로 섞는다. • bool shuffle ( array &array ) • 임의로 배열을 섞기 위해 PHP 4.2.0 미만에서는 srand()와 mt_srand() 를 이용해서 난수값 생성기를 초기화하여야 하나 4.2.0 이상부터는 난수값 생성기 초기화. • array_reverse : 배열을 받아서 역순으로 저장한 배열 반환. • array array_reverse ( array array [, bool preserve_keys] ) • preserve_key가 TRUE일 경우 키를 보존한다. • 인덱스를 0, 1, 2를 가지는 배열을 array_reverse(배열명, TRUE)라 고 하면 인덱스도 2, 1, 0 이런 식으로 역순으로 갖는다. • array_flip : 배열의 키와 해당 값을 서로 바꾼 배열 반환. • array array_flip ( array trans ) • 키와 값을 바꿀때 서로 같은 값이 있는 배열의 경우 충돌이 일어나게 되고 가장 마지막에 바꾼 것만 결과로 남는다. 한림대학교 웹데이터베이스 - 이윤환
  • 18.
    배열 관련 함수 배열의기본 정보 • count : 배열의 원소의 개수를 반환한다. • int count ( mixed var [, int mode] ) • http://www.php.net/manual/pt_BR/function.count.php • array_keys : 배열의 모든 키를 배열로 반환한다. • array array_keys ( array input [, mixed search_value] ) • http://www.php.net/manual/pt_BR/function.array-keys.php • array_values : 배열의 모든 값들을 반환한다. • array array_values ( array input ) • http://www.php.net/manual/pt_BR/function.array-values.php • Ex. array_info.php 한림대학교 웹데이터베이스 - 이윤환
  • 19.
    배열 관련 함수 배열탐색 함수 • current : 현재의 배열 커서(포인터)가 가리키는 원소 반환 • http://www.php.net/manual/pt_BR/function.current.php • reset : 배열의 내부 포인터(커서)를 처음으로 이동하고 값 반환 • http://www.php.net/manual/pt_BR/function.reset.php • end : 배열의 내부 포인터를 가장 끝 원소로 이동하고 값 반환 • http://www.php.net/manual/pt_BR/function.end.php • prev : 배열의 내부 포인터를 이전 원소로 이동시키고 해당 원소의 값 반환 • http://www.php.net/manual/pt_BR/function.prev.php • next : 배열의 내부 포인터를 다음 원소로 이동시키고 해당 원소의 값 반환 • http://www.php.net/manual/pt_BR/function.next.php • Ex. array_walking.php 한림대학교 웹데이터베이스 - 이윤환