본문 바로가기
컴퓨터/php

[php] GET, POST 로 form 의 데이터 받기 예제, GET POST 언제 사용 예시

by HanJoohyun 2018. 8. 22.
반응형

 

`



안녕하세요 한주현 입니다!

오늘은 간단한 예제를 통해 php에서 GET, POST 요청에 대한 처리를 해보겠습니다.


들어가며

우리가 php로 만들고 싶은것은 다음과 같습니다.

1. <form> 에 텍스트를 받는 <input>
2. <form> 을 전송하는 submit 버튼
3. submit 으로 전송된 데이터를 표현하는 페이지

세 가지 사항을 GETPOST 로 구현한다.



GET

1. GET 을 사용한 <form> 에 <input> 으로 텍스트를 받고 submit 버튼이 있는 페이지

get.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <div>GET test</div>
    <form action="get_result.php" method="get">
      <input type="text" name="id" placeholder="Enter id here">
      <input type="text" name="age" placeholder="Enter age here">
      <input type="submit" value="Submit">
    </form>
  </body>
</html>


<form> 태그의 속성으로 action="get_result.php" 를 넣었고

method="get" 으로 하였습니다.

이는 form 안의 데이터를 get 방식으로 get_result.php 로 넘기겠다는 얘기 입니다.

페이지를 작성하고 열어보면 아래와 같이 나올 것 입니다.


여기서 넘기는 데이터는 input 태그에 있는데,
첫 번째 input 은 name="id" 이고
두 번째 input 은 name="age" 입니다.

input text 의 값이 name에 들어간 "id" 와 "age" 를 key로 하여 get_result.php 에 넘어갑니다.



submit을 눌렀을 때 실행되는 get_result.php 를 아래에서 만들어 보겠습니다.




2. GET 으로 넘어온 데이터 받는 페이지

get_result.php

1
2
3
4
5
6
7
8
<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <p>ID: <?php echo $_GET["id"]; ?></p>
    <p>Age: <?php echo $_GET["age"]; ?></p>
  </body>
</html>


5, 6 번째 줄이 핵심이 되는 부분입니다.

이전 페이지에서 GET 으로 넘어온 데이터를 

$_GET["id"]$_GET["age"] 로 받아왔습니다 ㅎㅎ..



주소창에서 get_result.php?id=123&age=100 가 넘어온 데이터로

이렇게 두 개 이상의 데이터가 넘어올때는 key=val 이 & 로 연결되어 주소창에 표시됩니다.







POST

1. POST 를 사용한 <form> 에 <input> 으로 텍스트를 받고 submit 버튼이 있는 페이지

post.php

위의 get.php 와 다른점은 get 을 post 로 바꾼것 뿐입니다 ㅋㅋㅋ..

실제로 내용도 get 을 post 로 바꾼거 밖에 없음 ...... ㅋㅋㅋ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <div>POST test</div>
    <form action="post_result.php" method="post">
      <input type="text" name="id" placeholder="Enter id here">
      <input type="text" name="age" placeholder="Enter age here">
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

<form> 태그의 속성으로 action="post_result.php" 를 넣었고

method="post" 로 하였습니다.

이는 form 안의 데이터를 post 방식으로 post_result.php 로 넘기겠다는 얘기 입니다.

페이지를 작성하고 열어보면 아래와 같이 나올 것 입니다.


여기서 넘기는 데이터는 input 태그에 있는데,
첫 번째 input 은 name="id" 이고
두 번째 input 은 name="age" 입니다.

input text 의 값이 name에 들어간 "id" 와 "age" 를 key로 하여 post_result.php 에 넘어갑니다.



submit을 눌렀을 때 실행되는 post_result.php 를 아래에서 만들어 보겠습니다.






2. POST 로 넘어온 데이터 받는 페이지

post_result.php

1
2
3
4
5
6
7
8
<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <p>ID: <?php echo $_POST["id"]; ?></p>
    <p>Age: <?php echo $_POST["age"]; ?></p>
  </body>
</html>

5, 6 번째 줄이 핵심이 되는 부분입니다.

이전 페이지에서 POST 로 넘어온 데이터를 

$_POST["id"] 와 $_POST["age"] 로 받아왔습니다 ㅎㅎ..




아니... 근데 여기서 차이가.. ㅋㅋ

위에서 GET은 주소창에 ?key1=val1&key2=val2 과 같은 형태로 나왔는데

POST는 없습니다?

네 맞습니다. POST 방식은 주소창에 나오지 않습니다 ㅎㅎ










3. 언제 GET 과 POST 를 사용하는가?

GET 과 POST 의 차이점이 무엇인가?
언제 GET 과 POST 를 사용하는가?

사실 이 질문은 간단한 면접 질문으로도 좋은 질문이라고 생각합니다 ㅎㅎ..
이곳 저곳 주워들은 지식으로 한 번 써보자면..

1) GET 은 주소에 값이 나오고 POST 는 주소에 값이 나타나지 않습니다.

2) 그래서 간단한 텍스트 값들은 GET 으로 넘겨도 되나 너무 긴 내용은 POST 로 넘겨야 합니다.

3) 또한 그림파일과 같이 binary 형태의 데이터는 GET 보다는 POST 로 넘겨야 합니다.



오늘은 php의 GET, POST 요청 처리를 알아보았습니다.


여러분께 도움이 되셨음 좋겠네요 ㅎㅎ


그럼 다음에 만나요~




기부 버튼을 만들었습니다
여러분들의 작은 정성이 저에게 큰 힘이 됩니다
기부해주신 분들을 기억하며
더 좋은 내용으로 보답해 드리겠습니다 :)

Donate 버튼은 paypal 결제로 paypal 계정이 없으시더라도
카드로도 기부 가능하십니다 :)
Use your credit card or bank account (where available). 옆의 continue 를 누르시면 됩니다

한주현 드림



 



반응형

댓글