반응형
Web Development · updateform.php
updateform.php —
수정할 데이터를 DB에서 미리 가져와 폼에 채우기
SELECT → fetch → input value에 기존 값
시작 핵심 흐름
session_start(); require_once("MYDB.php"); $pdo = db_connect(); $id = 1; // 수정 대상 ID $_SESSION['id'] = $id; // 세션에 저장 (다음 페이지에 운반) $sql = "SELECT * FROM member WHERE id = :id"; $stmh = $pdo->prepare($sql); $stmh->bindValue(':id', $id, PDO::PARAM_INT); $stmh->execute(); $row = $stmh->fetch(PDO::FETCH_ASSOC); // 폼에 기존 값 채워서 출력 <INPUT type="text" name="last_name" value="<?=htmlspecialchars($row['last_name'])?>">
1 수정 페이지의 표준 흐름
1) 수정할 ID를 결정 (URL 매개변수, 세션, 또는 고정값)
2) DB에서 해당 행을 SELECT
3) 폼의 input value에 그 값을 채워 출력 (사용자가 일부만 변경 가능)
4) 사용자가 수정 후 송신 → update.php로 POST
2) DB에서 해당 행을 SELECT
3) 폼의 input value에 그 값을 채워 출력 (사용자가 일부만 변경 가능)
4) 사용자가 수정 후 송신 → update.php로 POST
2 세션에 ID 저장
$_SESSION['id'] = $id;
다음 페이지(update.php)에서 "어느 행을 수정해야 하는지" 알아야 한다. 세션에 두면 클라이언트가 조작할 수 없어 안전.
3 XSS 방어 — value에 htmlspecialchars
value="<?=htmlspecialchars($row['last_name'])?>"
DB 값에 따옴표·꺽쇠가 있으면 그대로 출력 시 폼이 깨진다. htmlspecialchars로 안전하게 이스케이프.
반응형
4 자주 하는 실수
· ID를 URL로 받을 때 검증 안 함 → 다른 사람 데이터 수정 가능 (IDOR 취약점)
· htmlspecialchars 누락 → 폼 깨짐 + XSS
· 세션 시작 안 함 → $_SESSION이 안 살아남음
· fetchAll로 받아 한 행만 쓸 때 [0] 인덱싱 빼먹음
· htmlspecialchars 누락 → 폼 깨짐 + XSS
· 세션 시작 안 함 → $_SESSION이 안 살아남음
· fetchAll로 받아 한 행만 쓸 때 [0] 인덱싱 빼먹음
핵심 한 줄 요약
SELECT WHERE id수정할 한 행 가져오기
fetch(FETCH_ASSOC)한 행을 키-값 배열로
input value=기존 값을 폼에 채움
$_SESSION['id']수정 대상 ID 안전하게 운반
htmlspecialcharsvalue에 입력 시 필수
권한 검증실무에선 "내 데이터인가" 체크
짝update.php가 실제 수정 처리
반응형
'php' 카테고리의 다른 글
| HTML5 video — 전체화면 배경 동영상 완전 정리 (0) | 2026.06.19 |
|---|---|
| PHP update.php — UPDATE 쿼리 + 세션 파기 완전 정리 (0) | 2026.06.19 |
| PHP MYDB.php — DB 접속 코드를 함수로 분리 완전 정리 (0) | 2026.06.19 |
| PHP search + list — LIKE 검색 + fetch 표 출력 완전 정리 (0) | 2026.06.19 |
| PHP form + view + PDO INSERT — 트랜잭션 처리 완전 정리 (0) | 2026.06.19 |
왕진 블로그

댓글