2017-03-19 6 views
1

나는 이것을 봤어, 또한 Stackoverflow에 대한 답변을 검색했다. 그러나 실제로는 체크 박스 값을 어떻게 위생 처리하는지에 대한 명확한 답은 없습니다. -이 정보가 서버에 전송되는체크 박스를 어떻게 위생 처리합니까?

<input type="checkbox" value="submit_doors"> 

누군가가 자신의 개발 도구 내에서 값을 교체 할 수 :

나는 내 입력되면 이해합니다.

그럼 어떻게 체크 박스/라디오 입력을 살균해야합니까? 값을 (int)로 검사해야합니까? 다른 모든 입력/선택 필드와 마찬가지로 값을 살균해야합니까? 기록을 위해

, 나는 워드 프레스를 사용하여 내 사이트를 개발하고 있어요, 나는이 일을하고 예를 들어, 텍스트 입력 살균하기 :
$turbo = trim(sanitize_text_field(wp_kses($_POST['submit_induction_turbo'], $allowed_html))); 

내가 너무 확인란을 통해이 모든 검사를 실행되어야한다? 아니면 과잉인가?

답변

0

먼저 $ _POST 변수에서 액세스 할 수 있도록 입력 필드에 이름을 지정해야합니다.

다음과 같은 입력 필드가 있고 그 필드를 삭제하려고한다고 가정 해 보겠습니다.

<input type="checkbox" name="door" value="submit_doors"> 

이 기능을 사용하면 모든 확인란을 살균 할 수 있습니다. 예를 들어

/** 
* Sanitize checkbox 
* @param int | string $input the input value to be sanitized 
* @param int | string $expected_value The expected value 
* @return int | string it returns the sanitize value of the checkbox. 
*/ 
function prefix_sanitize_checkbox($input, $expected_value=1) { 
    if ($expected_value == $input) { 
     return $expected_value; 
    } else { 
     return ''; 
    } 
} 

: 당신이 당신의 사용자가 체크 박스에서 값 "submit_doors"를 제출 여부를 확인하려는 경우, 당신은이 같은 기능을 사용할 수 있습니다.

$sanitized_value = !empty($_POST['door']) ? prefix_sanitize_checkbox($_POST['door'], 'submit_doors') : ''; // this will return the value only if the checkbox contains the value "submit_doors", otherwise, it will return empty string. 

이렇게하면 기능이 유연 해집니다. 두 번째 인수에 전달되면 true false 값과 1 및 다른 문자열 값을 삭제할 수 있습니다.

관련 문제