본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP form + view — 폼 입력 → POST → 화면 출력 완전 정리

by 왕진 2026. 6. 17.
반응형

 

 

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 패턴 권장)

핵심 한 줄 요약

<FORM action>데이터를 받을 PHP 파일 지정
method="post"본문 전송 — URL 노출 X
name 속성$_POST의 키 이름이 됨
$_POST받은 데이터의 슈퍼글로벌 배열
type="submit"송신 버튼
XSS 주의출력 시 htmlspecialchars 필수
vs GET민감 데이터는 POST, 검색은 GET
반응형

댓글