$validation_rules['maxLength']) { $errors[] = $question['sq_title'] . ' 항목은 최대 ' . $validation_rules['maxLength'] . '자까지 입력 가능합니다.'; continue; } if (isset($validation_rules['pattern'])) { $pattern = $validation_rules['pattern']; if ($pattern === 'email' && !filter_var($value, FILTER_VALIDATE_EMAIL)) { $errors[] = $question['sq_title'] . ' 항목에 올바른 이메일 주소를 입력해주세요.'; continue; } if ($pattern === 'phone' && !preg_match('/^[0-9-+\s()]+$/', $value)) { $errors[] = $question['sq_title'] . ' 항목에 올바른 전화번호를 입력해주세요.'; continue; } } } // 답변 저장 if (!empty($value) || $question['sq_required']) { save_survey_answer($sr_id, $question['sq_id'], $value); } } // 오류가 있으면 응답 삭제하고 돌아가기 if (!empty($errors)) { sql_query("DELETE FROM survey_responses WHERE sr_id = '$sr_id'"); // JSON 응답인지 확인 if (isset($_POST['ajax']) && $_POST['ajax'] == '1') { header('Content-Type: application/json'); echo json_encode(array( 'success' => false, 'errors' => $errors )); exit; } else { alert(implode('\n', $errors), 'survey_page.php?sv_id=' . $sv_id); } } // 응답 완료 처리 complete_survey_response($sr_id); // 통계 업데이트 update_survey_statistics($sv_id); // JSON 응답인지 확인 if (isset($_POST['ajax']) && $_POST['ajax'] == '1') { header('Content-Type: application/json'); echo json_encode(array( 'success' => true, 'redirect_url' => G5_THEME_PATH.'/rb.custom/survey_form/survey_complete_page.php?sv_id=' . $sv_id . '&sr_id=' . $sr_id )); exit; } else { // 완료 페이지로 이동 goto_url(G5_THEME_PATH.'/rb.custom/survey_form/survey_complete_page.php?sv_id=' . $sv_id . '&sr_id=' . $sr_id); } ?>