반응형
Web Development · PHP form + checkbox
PHP 체크박스 처리 —
name="hobby[]"로 다중 선택 받기
여러 개 선택 가능한 입력은 name 끝에 [] 붙여 배열로
시작 오늘 분석할 코드
<FORM method="post" action="view.php"> 나의 취미:<BR> <INPUT type="checkbox" name="hobby[]" value="스포츠">스포츠 <INPUT type="checkbox" name="hobby[]" value="영화감상">영화감상 <INPUT type="checkbox" name="hobby[]" value="독서">독서 <INPUT type="submit" value="송신"> </FORM>
<?php if(isset($_POST["hobby"])){ $hobby = implode('와 ', $_POST["hobby"]); print "저의 취미는 ".$hobby."입니다."; }else{ print "저의 취미는 없습니다."; } ?>
용어 용어 정리
type="checkbox"다중 선택 가능한 체크박스
name="x[]"대괄호로 배열로 받음
$_POST["hobby"]선택된 값들의 배열
isset한 개라도 체크됐는지 확인
implode배열 → 구분자로 합친 문자열
아무것도 안 체크키 자체가 $_POST에 없음
vs radioradio는 1개만, checkbox는 여러 개
실무관심사·태그·옵션 다중 선택
1 name="hobby[]"의 의미
같은 name으로 여러 input이 있을 때, 대괄호 []를 붙이면 PHP가 자동으로 배열로 묶어준다.
// 사용자가 "스포츠"와 "독서"만 체크 $_POST["hobby"] === ["스포츠", "독서"] // 자동으로 배열로 들어옴!
※
[]를 빼먹으면 같은 name이 충돌해 마지막 값만 남는다 (다른 값은 덮어써짐).2 아무것도 체크 안 하면?
체크된 게 하나도 없으면 키 자체가 $_POST에 들어오지 않는다. 그래서 isset으로 먼저 검사 필요.
if (isset($_POST["hobby"])) { // 1개 이상 체크됨 } else { // 아무것도 체크 안 함 }
3 implode로 한 문자열로
$_POST["hobby"] = ["스포츠", "독서"]; $hobby = implode('와 ', $_POST["hobby"]); // → "스포츠와 독서"
반응형
4 자주 하는 실수
· name에 [] 빼먹기 → 마지막 체크만 받힘
· isset 검사 안 함 → "Undefined index" 경고
· 출력 시 htmlspecialchars 누락 (XSS)
· in_array로 체크 상태 검사 안 함 → form 재출력 시 체크 안 됨
· isset 검사 안 함 → "Undefined index" 경고
· 출력 시 htmlspecialchars 누락 (XSS)
· in_array로 체크 상태 검사 안 함 → form 재출력 시 체크 안 됨
핵심 한 줄 요약
checkbox다중 선택 입력
name="x[]"대괄호로 배열로 받기
$_POST["x"]선택된 값들의 배열
isset 검사아무것도 체크 안 했을 수 있음
implode배열을 한 문자열로 결합
vs radioradio는 1개만 — name에 [] 불필요
활용관심사, 옵션, 태그 다중 선택
반응형
'php' 카테고리의 다른 글
| PHP form + view — SELECT 드롭다운 처리 완전 정리 (0) | 2026.06.17 |
|---|---|
| PHP form + view — 라디오 버튼 단일 선택 완전 정리 (0) | 2026.06.17 |
| PHP form4 + confirm + view — 확인/되돌아가기 분기 처리 완전 정리 (0) | 2026.06.17 |
| PHP form + confirm + view — 3단계 확인 화면 + hidden 필드 완전 정리 (0) | 2026.06.17 |
| PHP form2 + view — TEXTAREA 입력과 줄바꿈 처리 완전 정리 (0) | 2026.06.17 |
왕진 블로그

댓글