2016년 11월 24일 목요일

3. PHP [Processing Form Data]

How to get Form input??

HTML에서 Form형태의 여러종류 input값들을 브라우저를 통해 받아 서버에 submit 했었다. 어떤 방식, 어느 곳으로 보내는 지에 대한 내용은 2. HTML [Form] 에서 배웠다.
그렇다면 이제 어떻게 그 해당 URL에 보낸 input값들을 어떻게 받고 처리할수 있는지에 대해 배워보자.

Processing Form


다음과 같은 superglobal 배열을 사용해서 input값을 받아 들일수 있다.







  • $_GET 방식 은 URL을 통해서 오는 query string(input element의 name/value값)을 받는 방식
    • www.example.com/test.php?name=value&&name2=value2
  • $_POST방식은 URL이 아닌 HTTP request body에 query string을 넣어 보낸 값들을 받는다.
  • $_REQUEST 방식은 _GET or $_POST 방식에 상관없이 query string을 다 받을 수 있다.

$_REQUEST
 
다음은 value값뿐만아니라 name값도 php로 가져올수 있는 예제이다.



$_SERVER
$_SERVER를 통해 해당 요청이 GET 요청인지 POST요청인지 확인가능하고 그에따라 코딩할 수 있다.







associative array
$_FILES에 사용되는 array형태를 먼져 알아보자.




위와 같이 $blackbook이라는 배열이 있지만 원래 array라면 숫자가 들어가야할 [ ] 안에 문자가 들어간다. 이 말은 [] 안에 들어간 string은 key가 되고 그에 대한 값은 value가 되는 것이다.

  • "marty" key의 value는 "206-685-2181" 이다.

$_FILES
$_FILES array 의 하나하나의 element들은 associative array이다. $_FILES 의 key값은 다음과같다.

  • name - the local filename that the user uploaded
  • type - the MIME type of data that was uploaded, such as image/jpeg
  • size - file's size in bytes
  • tmp_name -a filename where PHP has temporarily saved the uploaded file

예를 들어 다음과 같은 form이 있다고하자.





만약에 내가 beauty.jpg를 선택하고 제출 했다면

  • $_FILES["avatar"]["name"] 은 "beauty.jpg" 
  • $_FILES["avatar"]["type"] 은 "image/jpg"
  • $_FILES["avatar"]["tmp_name"] 은 예를 들어 "/var/tmp/JjvdjrrksL"

0 개의 댓글:

댓글 쓰기