본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP form4 + confirm + view — 확인/되돌아가기 분기 처리 완전 정리

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

 

 

Web Development · PHP form4 + confirm + view

PHP 분기 폼 —
확인 / 되돌아가기 두 버튼 처리

isset($_POST['confirm']), isset($_POST['back'])로 분기
시작 오늘 분석할 코드

form3과의 차이는 확인 화면에 두 가지 버튼이 있다는 점 — "확인"과 "되돌아가기". view.php에서 어떤 버튼을 눌렀는지 판별해 다른 동작을 한다.

view.php (분기 로직)
<?php if(isset($_POST["confirm"])){ // "확인" 버튼을 누른 경우 → 최종 메시지 출력 print $_POST["onamae"]."님으로부터의 메시지"; print "<BR><BR>본문 :<BR>"; print nl2br($_POST["honbun"]); }elseif(isset($_POST["back"])){ // "되돌아가기" 버튼 → 이전 입력값을 채워 다시 폼 보여주기 print "...폼 다시 보여주기 (이전 값 자동 채움)..."; }else{ print "오류입니다."; } ?>
용어 용어 정리
isset()변수가 정의되어 있는지 검사
submit + name버튼마다 name을 주면 어떤 게 눌렸는지 알 수 있음
if/elseif/else3가지 시나리오 분기
value 자동 채움되돌아간 폼에 이전 입력값 유지
확인$_POST['confirm'] 존재
되돌아가기$_POST['back'] 존재
기타 케이스두 버튼 모두 없음 → 오류 안내
실무결제 확인, 회원가입 동의·확인 단계

1 두 submit 버튼이 동작하는 원리
<INPUT type="submit" value="확인" name="confirm"> <INPUT type="submit" value="되돌아가기" name="back">

둘 중 사용자가 누른 버튼만 그 name으로 $_POST에 들어온다. 안 누른 버튼은 키 자체가 존재하지 않음 → isset으로 구분 가능.


2 isset() — 변수 정의 여부
isset($_POST["confirm"]) // ↑ // "이 키가 $_POST 배열에 있는가?" // 있으면 true (사용자가 그 버튼을 눌렀다는 뜻) // 없으면 false

3 되돌아가기 — 이전 값 자동 채우기
<INPUT type="text" name="onamae" value="<?=$_POST['onamae']?>"> <TEXTAREA name="honbun"><?=$_POST['honbun']?></TEXTAREA>

되돌아간 폼에 이전 입력값을 채워두면 사용자가 처음부터 다시 입력할 필요 없다. UX 핵심.


 

반응형

 

4 분기 흐름 정리
[입력] form.html ↓ 송신 [확인] confirm.php (확인 / 되돌아가기 두 버튼) │ ├─── "확인" 클릭 → view.php (isset confirm) → 최종 처리 │ └─── "되돌아가기" 클릭 → view.php (isset back) → 폼 재출력 ↓ [입력] 다시

5 자주 하는 실수
· submit에 name 안 주면 어떤 버튼인지 알 수 없음
· isset 대신 !empty() 사용 시 "0"을 누락할 수 있음
· 되돌아가기에 value 자동 채움 누락 → 사용자가 다시 다 입력
· 보안 처리 누락 (XSS)
· "기타" 케이스 (else) 누락 → 직접 URL 접근 시 빈 페이지

6 한 단계 발전 — 세션 + PRG 패턴
// confirm.php에서 세션에 저장 session_start(); $_SESSION['form_data'] = $_POST; // view.php에서 분기 session_start(); if (isset($_POST['confirm'])) { // 최종 처리 (DB 저장 등) unset($_SESSION['form_data']); header("Location: success.php"); // PRG: 새로고침 방지 exit; } elseif (isset($_POST['back'])) { header("Location: form.php"); // 폼으로 리다이렉트 exit; }

세션 + PRG(Post-Redirect-Get) 조합이 현대적이고 안전.


핵심 한 줄 요약

두 submit 버튼서로 다른 name으로 어떤 게 눌렸는지 구분
isset()$_POST에 그 키가 있는지 검사
if/elseif/else3가지 시나리오 처리 (확인/되돌아가기/오류)
value 자동 채움되돌아간 폼에 이전 값 유지 — UX 핵심
XSS 주의value 출력 시 htmlspecialchars 필수
현대 권장세션 + PRG 패턴 조합
실무결제, 회원가입 확인, 중요 폼
반응형

댓글