반응형
말랑Cow
IT
말랑Cow
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Linux (33)
    • Windows (6)
    • Network (7)
    • Hardware (10)
    • Zabbix (13)
    • python (9)
    • script (0)
    • docker (16)
    • NAS (1)
    • DB (3)
    • php (33)
    • jQuery (1)
    • 정보보안기사 (0)
    • Ajax (1)
    • Javascript (21)
    • DELL (0)
    • HPE (0)
    • Secui (0)
    • AWS (2)
    • Elastic (0)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • jQuery
  • docker
  • 자빅스
  • 리눅스
  • Linux
  • ZABBIX
  • Shell
  • php 클래스
  • Python
  • 네트워크
  • JavaScript
  • php
  • 자바스크립트
  • bash
  • php 객체
  • 모니터링
  • 서버
  • 파이썬
  • 도커
  • CentOS
hELLO · Designed By 정상우.
말랑Cow

IT

[HTML Form을 통한 데이터 전송] POST, GET
php

[HTML Form을 통한 데이터 전송] POST, GET

2021. 8. 27. 00:00
반응형

클라이언트가 서버에 HTTP 요청 시 POST, GET 둘 중 하나를 사용하게 됩니다.

 

GET의 경우 URL로 정보가 전송되며, POST의 경우 HTTP의 BODY로 정보가 전송됩니다.

 

GET은 $_GET으로 접근할 수 있으며 POST는 $_POST로 접근할 수 있습니다.

 

1. POST로 데이터 전달

 

POST방식으로 전송된 데이터는 $_POST 배열 변수에 저장됩니다.

 

php는 $_REQUEST라는 배열 변수가 존재합니다.

이 변수를 사용하면 POST, GET 방식으로 전송된 데이터를 구분하지 않고 받을 수 있습니다.

 

POST방식은 HTML의 <form> 태그와 함께 사용해야 합니다.

 

form을 만들고 input 박스에서 데이터를 입력하여 post로 데이터를 전달받는 방식을 코드로 확인해보겠습니다.

# post.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>POST</title>
</head>
<body>
    <h1>POST Example</h1>
    <form action="./post_result.php" method="post">
        Name : <input type="text" name="name"><br/>
        ID : <input type="text" name="id"><br/>
        Email : <input type="text" name="email"><br/>
        <input type="submit" value="전송">
    </form>
</body>
</html>
<?php

$name = $_POST["name"];
$id = $_POST["id"];
$email = $_POST["email"];

?>


<html>
<head>
    <title>Post Result</title>
</head>
<body>
    <h1>Post Example</h1>
    <?php
    echo $name."님의 ID는 ".$id.", E-mail 주소는 ".$email."입니다.";
    ?>
</body>
</html>

post.php 파일에서 html로 폼을 만들고, submit 전송을 누르면 post_result.php 파일에 post method로 전송됩니다.

 

post_result.php 파일은 $_POST로 전달받은 배열 데이터를 name, id, email 변수에 각각 담고 echo로 출력합니다.

 

 

GET방식과 POST의 URL을 보면 알 수 있듯, POST방식으로 보내진 데이터들은 URL에 나타나지 않습니다.

로그인과 같이 보안이 중요한 부분에는 POST 방식을 사용합니다.

하지만 변수들이 URL에 나타나지 않기 때문에 그 페이지를 즐겨찾기 하거나 북마크 하는 것은 불가능 합니다.

 

2. GET 방식으로 데이터 전달

 

$_GET 배열 변수는 HTTP GET 방식으로 전송된 태그의 name 속성과 value 속성의 값이 변수들의 배열이 됩니다.

 

GET 방식으로 전송된 정보는 웹의 URL을 통해서 모든 사용자들이 볼 수 있습니다.

 

# get.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GET</title>
</head>
<body>
    <h1>GET Example</h1>
    <form action="./get_result.php" method="get">
        Name : <input type="text" name="name"><br/>
        ID : <input type="text" name="id"><br/>
        Email : <input type="text" name="email"><br/>
        <input type="submit" value="전송">
    </form>
</body>
</html>
# get_result.php

<?php

$name = $_GET["name"];
$id = $_GET["id"];
$email = $_GET["email"];

?>


<html>
<head>
    <title>Post Result</title>
</head>
<body>
    <h1>Get Example</h1>
    <?php
    echo $name."님의 ID는 ".$id.", E-mail 주소는 ".$email."입니다.";
    ?>
</body>
</html>

전송버튼을 누른 후 결과를 보면 URL에 입력한 데이터들이 표시되어 브라우저에서 확인 가능한 것을 알 수 있습니다.

 

URL에 전달하는 데이터의 키와 값이 나타나기 때문에 보안상 취약점이 존재하므로, 중요데이터는 POST방식을 이용해서 요청하는 것이 좋습니다.

 

위에서는 Form 태그를 사용해서 데이터를 전송하였고, 이번엔 form 태그 없이 데이터를 전송해보겠습니다.

 

# get1.php

<?php

$name = 'sjh';
$id = 'test';
$email = 'test@test.com';

?>


<html>
<head>
    <title>Get Result</title>
</head>
<body>
    <h1>Get Example</h1>
    <a href="./get_result.php?name=<?php echo $name; ?>&id=<?php echo $id; ?>&email=<?php echo $email; ?>">전송</a>
</body>
</html>

여러개의 값을 사용하고 싶을 땐 앰퍼샌드 기호를 추가하여 연결하여 사용하면 됩니다.

반응형

'php' 카테고리의 다른 글

[HTML Form을 통한 데이터 전송] select 태그  (0) 2021.08.29
[HTML Form을 통한 데이터 전송] input 태그  (1) 2021.08.28
[php 내장함수] 네트워크 관련 함수  (0) 2021.08.26
[php 내장함수] 파일 관련 함수  (0) 2021.08.25
[php 내장함수] 배열 관련 함수  (0) 2021.08.24
    'php' 카테고리의 다른 글
    • [HTML Form을 통한 데이터 전송] select 태그
    • [HTML Form을 통한 데이터 전송] input 태그
    • [php 내장함수] 네트워크 관련 함수
    • [php 내장함수] 파일 관련 함수
    말랑Cow
    말랑Cow

    티스토리툴바