다음 폼 검증 코드에서 라디오 버튼 필드의 특수한 처리가 필요한 이유는?

과목: PHP

문제 번호: 2916

hard
다음 폼 검증 코드에서 라디오 버튼 필드의 특수한 처리가 필요한 이유는?
if (empty($_POST["gender"])) {
    $genderErr = "Gender is required";
} else {
    $gender = test_input($_POST["gender"]);
}

<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr; ?></span>
A. 라디오 버튼은 배열로 전송되기 때문
B. 라디오 버튼은 선택하지 않으면 $_POST에 키 자체가 존재하지 않기 때문
C. 라디오 버튼은 여러 값을 동시에 선택할 수 있기 때문
D. 라디오 버튼은 보안 처리가 필요하지 않기 때문

정답: B



라디오 버튼은 아무것도 선택하지 않으면 $_POST 배열에 해당 키가 전혀 생성되지 않습니다.

⦁ 라디오 버튼의 특성:
⦁ 선택 시: $_POST["gender"] = "female" (선택된 value)
⦁ 미선택 시: $_POST["gender"] 키 자체가 존재하지 않음
⦁ 하나만 선택 가능 (동일한 name 속성)

⦁ 다른 input 타입과의 차이:
⦁ 텍스트 입력: 빈값이라도 $_POST["name"] = "" 형태로 존재
⦁ 라디오 버튼: 선택하지 않으면 키 자체가 없음

⦁ 검증 방법:
if (empty($_POST["gender"])) {
    // 키가 없거나 빈값일 때 모두 처리
}

💡 학습 팁

이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.