반응형
Web Development · PHP form1 + view
PHP form + view —
POST 폼으로 입력 받고 다른 페이지에서 출력
두 파일이 한 쌍 — 입력 페이지 + 결과 페이지
시작 오늘 분석할 코드
가장 단순한 PHP 폼 처리. 사용자가 form 페이지에서 이름을 입력하고 송신하면, view.php가 그 값을 받아 화면에 출력한다.
form.html
<FORM name="form1" method="post" action="view.php"> 이름:<BR> <INPUT type="text" name="onamae"> <INPUT type="submit" value="송신"> </FORM>
view.php
<?php print $_POST["onamae"]." 님 안녕하세요!"; ?>
용어 용어 정리
<FORM>데이터 전송 영역을 감싸는 태그
method="post"데이터를 본문에 담아 전송 (URL X)
method="get"URL 쿼리스트링으로 전송
action데이터를 받을 PHP 파일 경로
name이 입력의 키 이름 ($_POST의 키)
$_POSTPOST로 받은 데이터의 슈퍼글로벌 배열
type="submit"폼 송신 버튼
type="text"한 줄 텍스트 입력
1 흐름 — 두 파일이 한 쌍
[사용자] ↓ 이름 입력 + 송신 클릭 [form.html — INPUT name="onamae"] ↓ POST 전송 (URL: view.php) [view.php] ↓ $_POST["onamae"]로 값을 꺼내 출력 [화면: "○철수 님 안녕하세요!"]
2 name 속성 = $_POST의 키
HTML 폼의 name="onamae"가 PHP에선 $_POST["onamae"] 키가 된다. 두 글자 그대로 매칭.
<INPUT type="text" name="onamae"> ↑ │ 키 이름 ↓ $_POST["onamae"] ← 여기로 값이 들어옴
3 POST vs GET
| 관점 | POST | GET |
|---|---|---|
| 전송 위치 | HTTP 본문 | URL 쿼리스트링 |
| URL 노출 | 안 됨 | ?onamae=... 노출 |
| 북마크 가능 | X | O |
| 크기 제한 | 실질적 제한 적음 | URL 길이 제한 (≈2KB) |
| 적합한 용도 | 로그인·등록·민감 데이터 | 검색·페이지네이션·필터 |
| PHP 측 | $_POST |
$_GET |
반응형
4 XSS 방어 — 이번 코드의 결정적 결함
※
print $_POST["onamae"]은 위험하다. 사용자가 이름에 <script>...</script>를 넣으면 그대로 실행된다.// 안전한 출력 print htmlspecialchars($_POST["onamae"], ENT_QUOTES, "UTF-8") . " 님 안녕하세요!";
학습용 단순 예제이긴 하지만, 실무에선 모든 사용자 입력 출력에 htmlspecialchars 적용이 기본이다.
5 자주 하는 실수
· name 속성 누락 → 데이터가 $_POST에 안 들어감
· action 경로 오타 → 404 또는 잘못된 페이지
· GET이 적합한데 POST 사용 (또는 그 반대)
· htmlspecialchars 빠뜨려 XSS 노출
· POST 페이지 새로고침 → 중복 제출 (PRG 패턴 권장)
· action 경로 오타 → 404 또는 잘못된 페이지
· GET이 적합한데 POST 사용 (또는 그 반대)
· htmlspecialchars 빠뜨려 XSS 노출
· POST 페이지 새로고침 → 중복 제출 (PRG 패턴 권장)
핵심 한 줄 요약
<FORM action>데이터를 받을 PHP 파일 지정
method="post"본문 전송 — URL 노출 X
name 속성$_POST의 키 이름이 됨
$_POST받은 데이터의 슈퍼글로벌 배열
type="submit"송신 버튼
XSS 주의출력 시 htmlspecialchars 필수
vs GET민감 데이터는 POST, 검색은 GET
반응형
'php' 카테고리의 다른 글
| PHP form + confirm + view — 3단계 확인 화면 + hidden 필드 완전 정리 (0) | 2026.06.17 |
|---|---|
| PHP form2 + view — TEXTAREA 입력과 줄바꿈 처리 완전 정리 (0) | 2026.06.17 |
| PHP preg_match — 정규식 패턴 검사 완전 정리 (0) | 2026.06.16 |
| PHP mb_convert_encoding — 문자열 인코딩 변환 완전 정리 (0) | 2026.06.16 |
| PHP header Location — 페이지 리다이렉트 완전 정리 (0) | 2026.06.16 |
왕진 블로그

댓글