반응형
GET방식 vs POST방식 한눈에 보기
| 구분 | GET | POST |
| 전송 방식 | URL 주소에 붙여서 보냄 | 메시지 본문(Body)에 담아 보냄 |
| 노출 여부 | 주소창에 다 보임 (노출 O) | 주소창에 안 보임 (노출 X) |
| 용도 | 단순 조회 (검색, 페이지 이동) | 데이터 저장/변경 (로그인, 글쓰기) |
| 제한 | 전송량 제한 있음 (짧음) | 제한 없음 (대용량 가능) |
| 실습 하기 4-1.html <-> 4-1.php a.php <-> b.php |
4-1.html (데이터를 입력하는폼)
사용자로부터 값을 입력받아 서버(PHP)로 던져주는 역할
| <? $text = $_GET['text']; // GET 방식의 전달 데이터를 저장하는 배열 echo("전달된 값은 {$text}입니다."); ?> |

사용자가 input type="text"에 글자를 쓰고 input type="submit"을 누르면, 데이터는 name="text"라는 이름표를 달고 action=4-1.php파일로 method="get"방식을 통해 주소창을 타고 날아가게 된다
4-1.html (입력받은 데이터 출력)
4-1.html에서 보낸 값을 받아 화면에 보여주는 수신기 역할을 한다

| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>4-1.php</title> </head> <body> <h3>GET 예제 결과</h3> <?php // 사진 속 핵심 코드 (GET 방식으로 데이터 수신) $text = $_GET['text']; // GET 방식의 전달 데이터를 저장하는 배열 echo("전달된 값은 {$text}입니다."); --- 따옴표 안의 문장을 출력한다. {$text}는 변수에 저장된 실제 값으로 바뀐다 ?> <hr> <?php show_source(__FILE__); ?> </body> </html> |

a.php(하이퍼링크를 통해 데이터 전송)
| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>a.php</title> </head> <body> <?php $a = 1; -- 서버 내부에서 변수 $a에 숫자 1을 미리 할당 한다 echo("\$a = {$a}<br> -- \$a 는 문자 그대로 '$a'를 출력하고, {$a}는 실제 값인 '1'을 출력 한다 <a href=./b.php?a=\$a>b.php</a>"); // <a href=./b.php?a=1>b.php</a> ?> * <a href=./b.php?a=1>b.php</a> -- <a href=./b.php?a=\$a> (링크 주소 부분) 이므로 이부분은 클릭 했을때 b.php 라는 파일로 이동하라는 명령어 이다 <hr> <?php show_source(__FILE__); ?> </body> </html> |

b.php(링크 데이터 수신 및 출력)
a.php 에서 클릭한 링크의 값을 받아 화면에 출력 한다
| PHP <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>b.php</title> </head> <body> <?php $a = $_GET["a"]; -- 주소창(?a=1)에서 'a'라는 이름표의 값을 가져온다 echo("\$a = {$a}"); -- 전달 받은 값을 $a라는 이름과 함께 출력한다 \$a 는 문자 $a로 출력, {$a}는 받은 값인 1로 출력 된다 ?> <hr> <?php show_source(__FILE__); ?> </body> </html> |


4-4. html (데이터 입력용 HTML 파일)
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Input type text와 password</title> </head>
<body> <form name="tx_pw" action="4-4.php" method="post">
이름 : <input type="text" name="id" size="8"><br>
암호 : <input type="password" name="pw" size="8"><br>
<input type="submit" name="확인" value="확인">
</form> </body> </html>
4-4.html (데이터 수신 및 처리용 PHP 파일)
| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <?php $user_id = $_POST['id']; -- POST 방식으로 전달된 'id' 값을 변수 $user_id에 대입 * $_POST: 컴퓨터가 미리 만들어둔 데이터 저장함. 4-4.html 파일에서 method="post"라고 썻기 때문에 데잉터들이 이 이름의 저장함으로 들어간다 * ['id']: 저장함에는 여러 개의 칸이 있다. 그 중에서 id라는 이름표가 붙은 칸을 의미한다. (이 이름표에는 HTML name="id"에서 정해진 것) * $user_id: 이것은 PHP에서 내가 직접 만든 새로운 빈 공간이다. 앞에 $가 붙으면 데이터를 담을 수 있는 이름이 된다. =(이퀄)은 프로그래밍에서는 "오른쪽에 있는 것을 왼쪽에 집어넣어라는 명령어이다. 그래서 저장함에서 꺼낸 st라는 글자를 내가 만든 $user_id 라는 공간으로 복사해서 집어넣는 동작을 한다 $user_pw = $_POST['pw']; -- POST 방식으로 전달된 'pw' 값을 변수 $user_pw에 대입 echo("이름은 {$user_id}입니다.<br>"); -- 아이디 값 변수 파싱 및 화면 출력 후 줄바꿈 echo("암호는 {$user_pw}입니다.<br>"); -- 비밀번호 값 변수 파싱 및 화면 출력 후 줄바꿈 echo("<hr>"); -- 시각적 구분을 위한 수평선 출력 echo("insert into id(id, pw) values('{$user_id}', '{$user_pw}');"); -- SQL INSERT 구문 형식으로 데이터 가공 및 출력 ?> <hr> <?php show_source(__FILE__); -- 현재 실행 중인 파일의 전체 소스 코드를 화면에 텍스트로 노출 |


4-5.html
사용자로부터 데이터를 입력받는 구조
| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> *** Content-Type: text/html; charset=utf-8' - 브라우저에게 한글(UTF-8)을 사용함을 알려 글자 깨짐을 방지 <title>Input radio & checkbox</title> </head> <body> <form name="combined" action="4-5.php" method="post"> 1 <input type="radio" name="rd" value="1" checked>, ---> 입력을 안한 상황에서 1로 checked 되어 있음 2 <input type="radio" name="rd" value="2">, 3 <input type="radio" name="rd" value="3">, 4 <input type="radio" name="rd" value="4"> <hr> 1 <input type="checkbox" name="cb1" value="1" checked>, ---> 입력을 안한 상황에서 1로 checked 되어 있음 2 <input type="checkbox" name="cb2" value="1">, 3 <input type="checkbox" name="cb3" value="1">, 4 <input type="checkbox" name="cb4" value="1"> <br><br> <input type="submit" name="확인" value="확인"> </form> </body> </html> |
4-5.php
| <?php // PHP 명령 시작 header('Content-Type: text/html; charset=utf-8'); // $_POST['rd'] : HTML에서 전송된 라디오 버튼의 값을 가져옴 // echo : 화면에 "선택한 라디오 값은..." 문장을 출력함 echo "선택한 라디오 값은 {$_POST['rd']}입니다.<br>"; // $_POST['cb1']~['cb4'] : 각 체크박스의 값을 개별적으로 읽어옴 // <br> : 결과가 한 줄씩 나오도록 줄바꿈을 함 echo "cb1은 {$_POST['cb1']}입니다.<br>"; echo "cb2은 {$_POST['cb2']}입니다.<br>"; echo "cb3은 {$_POST['cb3']}입니다.<br>"; echo "cb4은 {$_POST['cb4']}입니다.<br>"; // <hr> : 가로선을 그어 출력값과 소스 코드를 구분함 echo "<hr>"; show_source(__FILE__); -- 현재 이 파일(4-5.php)의 소스 코드를 화면에 표시함 ?> |


4-9.html
| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Textarea</title> </head> <body> <form name="textarea" action="4-9.php" method="post"> --- method=post 데이터를 보내는 방식 <textarea name="tarea" rows="5" cols="30"></textarea> --- rows=상자높이 cols=상자의 너비 <br> <input type="submit" name="확인" value="확인"> </form> </body> </html> |
| <?php --- PHP 스크립트의 시작 header('Content-Type: text/html; charset=utf-8'); --- 결과 화면에서 한글이 깨지지 않게 설정함 $tarea = $_POST["tarea"]; --- HTML에서 보낸 텍스트 영역의 데이터를 가져옴 $tarea = nl2br($tarea); --- nl2br() 입력된 텍스트의 줄바꿈(/n)을 HTML 태그(<br>)로 변환함 echo("$tarea"); --- echo: 변수 tarea에 저장된 내용을 화면에 출력함 / * 컴퓨터 언어를 브라우저 언어로 번역해주는 작업 echo "<hr>"; --- hr 구분선 출력 show_source(__FILE__); ?> |


st.html
| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>학생 정보 입력</title> </head> --- 인터넷 창 맨 위(탭)에 나타나는 제목을 설정 <body> <form name="st_form" action="st.php" method="post"> * form: 데이터 전송 설정 action="st.php" 확인버튼을 눌렀을 때 데이터를 배달할 목적지 파일 이름 method="post" 데이터를 보내는 방식 학번 : <input type="text" name="st_id"><br> 이름 : <input type="text" name="st_name"><br> * type="text" 한 줄짜리 글자를 입력받는 상자를 만든다 / name="st_id" PHP에서 이 데이터를 찾을 때 쓰는 고유 이름 PHP의 $_POST["st_id"]와 연결됨 성별 : 남 <input type="radio" name="gender" value="남" checked>, * type="radio" 동그란 버튼 중 하나만 선택하는 방식 name="gender" 성별 버튼들을 하나의 그룹으로 묶어줌 / value="남"사용자가 이 버튼을 골랐을 때 PHP로 전달될 실제 값 / checked 페이지가 처음 열릴 때 기본으로 선택되어 있게 함 여 <input type="radio" name="gender" value="여"><br> 학과 : <select name="dept"> * select 클릭하면 아래로 목록이 쫙 펼쳐지는 '드롭다운 메뉴'를 만든다 <option value="화학과">화학</option> <option value="컴퓨터공학과">컴퓨터공학</option> * option value="화학과" 메뉴 안에 들어갈 세부 항목 </select><br> 학년 : 1 <input type="radio" name="grade" value="1학년">, * 성별과 마찬자기로 여러 학년 중 하나만 고르게 함 2 <input type="radio" name="grade" value="2학년" checked>, 3 <input type="radio" name="grade" value="3학년">, 4 <input type="radio" name="grade" value="4학년"><br> 학점 : <input type="text" name="score"><br><br> <input type="submit" value="확인"> * type="submit" 전송버튼임. 이 버튼을 누르는 순간 form 안에 적힌 모든 데이터가 action dp wjrdls st.php로 발송됨 / value"확인' 버튼 겉면에 써질 글자임 </form> </body> </html> |
| <?php header('Content-Type: text/html; charset=utf-8'); // $_POST["이름"]: HTML에서 보낸 바구니에서 값을 꺼내 변수에 저장 $st_id = $_POST["st_id"]; // 학번 바구니 꺼내기 $st_name = $_POST["st_name"]; // 이름 바구니 꺼내기 $gender = $_POST["gender"]; // 성별 바구니 꺼내기 $dept = $_POST["dept"]; // 학과 바구니 꺼내기 $grade = $_POST["grade"]; // 학년 바구니 꺼내기 $score = $_POST["score"]; // 학점 바구니 꺼내기 echo "<table border='1' width='300'>"; --- border="1"은 선 두께를 의미함 // tr: 한 줄(Row)을 만든다 / td: 한 칸(Cell)을 만든다 // echo를 사용하여 HTML 태그와 변수 값을 섞어서 화면에 출력함 echo "<tr> <td align='center'>학번</td> <td align='center'>$st_id</td> </tr>"; echo "<tr> <td align='center'>이름</td> <td align='center'>$st_name</td> </tr>"; echo "<tr> <td align='center'>성별</td> <td align='center'>$gender</td> </tr>"; echo "<tr> <td align='center'>학과</td> <td align='center'>$dept</td> </tr>"; echo "<tr> <td align='center'>학년</td> <td align='center'>$grade</td> </tr>"; echo "<tr> <td align='center'>학점</td> <td align='center'>$score</td> </tr>"; echo "</table>"; // 표를 닫는다 echo "<hr>"; // 구분선을 긋는다 show_source(__FILE__); ?> |
'Infra & Security Eng > Programming' 카테고리의 다른 글
| [PHP] oci_fetch_all의 2차원 배열 구조 해석 하기 (0) | 2026.03.24 |
|---|---|
| [PHP] - 함수의 정의, 구조, 예시, 소수 판별의 원리, 실습 코드 분석해보기 (0) | 2026.03.19 |
| [PHP] - 배열 정의, 1,2차원 배열의 종류와 특징, php 코드 실습과 해설 (0) | 2026.03.18 |
| 반목분(while문과 for 문) 개념, 차이점, 예제 (0) | 2026.02.06 |
| 프로그래밍 언어 기초 (연산자, 변수, 배열) (0) | 2026.01.09 |