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 개의 댓글:
댓글 쓰기