2017-03-02 2 views
3

사용자 입력 데이터를 살균하기 위해 웹에서 함수를 찾고 $_POST[] 메서드 대신 post()을 생성하는 데 사용했습니다. 그러나이 함수는 ç, ş, ö, ı, İ, Ö, ğ과 같은 UTF-8 문자를 øl과 같은 문자열로 변환하여 위생적으로 처리합니다. 나는 코드의 어느 부분이 그렇게하는지 모른다.

미리 감사드립니다.

나는 당신이 당신이 UTF-8로 인코딩 된 문자열을 사용하는 알 수 있도록 전화 사용자를 htmlentities에 몇 가지 추가 PARAMS을 추가해야합니다 생각 manual 보면 기능

function post($key) { 
    if (isset($_POST[$key])) { 
     $data = $_POST[$key]; 
     if (is_array($data)) { 
      foreach ($data as $key => $element) { 
       $data[$key] = filter($element); 
      } 
     } else { 
      $data = trim(htmlentities(strip_tags($data))); 
      if(get_magic_quotes_gpc()) 
       $data = stripslashes($data); 
      $data = pg_escape_string($data); 
     } 
    return $data; 
    } else { 
     return false; 
    } 
} 

답변

2

살균.

다음은 가능한 해결책입니다. 관련 부분을 명확하게하기 위해 별도의 기능으로 분해했습니다.

function post($key){ 
    if (isset($_POST[$key])){ 
    $post = $_POST[$key]; 

    if (is_array($post)) { 
     $data = array(); 
     foreach ($post as $key => $element) { 
     $data[$key] = filter($element); 
     } 
    } else { 
     $data = formatHtmlEntities($post); 
    } 

    return $data; 
    } 

    return false; 
} 

function formatHtmlEntities($data) 
{ 
    $stripTags = strip_tags($data); 
    $entityEncodedData = trim(htmlentities($stripTags, ENT_QUOTES, "UTF-8")); 

    if (get_magic_quotes_gpc()) { 
    $entityEncodedData = stripslashes($entityEncodedData); 
    } 

    return pg_escape_string($entityEncodedData); 
} 
+0

내 문제가 해결되었습니다. 감사합니다. – Ahmet