2012-03-01 4 views
1

PHP에서 get_magic_quotes_gpc() 함수에 대해 읽었을 때 정말 혼란 스럽습니다.항상 _POST _GET 및 _COOKIE 변수에 stripslash를 사용해야합니까?

어디서나 기능이 더 이상 사용되지 않습니다 (example).

하지만 PHP 5.3의 기본 동작은 무엇입니까? 나는 magic_quotes_gpc이 켜져 있는지 확인하고, 모든 스크립트가 시작될 때 POST, GETCOOKIE 변수에 대한 모든 슬래시를 제거했습니다. 그래서 혼동하지 않습니다.

get_magic_quotes_gpc()을 사용하여 추가 된 슬래시를 확인하지 않으면, 슬래시를 제거하면 PHP 5.3에서 슬래시가 추가되지 않으면 항상 잘못된 데이터가됩니다.

나는 magic_quotes_gpc 내 서버 (PHP 5.2.17)에 켜져 순간 this

와 같은 혼란을 가지고, 그래서 슬래시를 제거해야합니다. 하지만 향후 PHP 버전을 준비하려면 어떻게해야합니까?

나중에 스크립트 시작 부분에서 런타임 중에 기본값을 어떻게 설정합니까? 그러나 기본값은 무엇입니까?

답변

7

get_magic_quotes_gpc 기능은 더 이상 사용되지 않으며 더 이상 사용되지 않는 magic_quotes_gpc 구성 설정입니다.

이 솔루션은 자신의 서버에 magic_quotes_gpc 구성 설정을 사용하지만 사용되지 않는 magic_quotes_gpc 설정을 켠 않는 서버에서 실행되는 강력한 코드를 작성하려는 경우도 get_magic_quotes_gpc를 사용하지 않는 것입니다. 즉

:

    는 설정에 magic_quotes_gpc을 해제
  • .
  • 현재 stripslashes을 사용하는 곳이면 get_magic_quotes_gpc() == 1 인 경우 stripslashes으로 만 변경하십시오.
+0

불행히도 해당 서버의 구성 파일에 쓰기 액세스 권한이 없습니다. magic_quotes_gpc()를 확인하는 함수를 작성했습니다. 그러나 PHP> 5.3에서 슬래시를 추가하는 것이 기본 동작이라고 말합니까? 그 점에 대한 참고가 있습니까? –

+0

아니요, 'magic_quotes_gpc'가 활성화되어 있지 않으면 슬래시를 추가하는 것이 기본 동작이 아닙니다. 자신 만의'get_magic_quotes_gpc' 버전을 쓸 필요가 없습니다. 더 이상 사용되지 않습니다. –

+0

"filter_input_array()"함수를 사용하기 시작했습니다. 이 함수는 값의 슬래시를 자동으로 제거합니다. 나는 http://www.php.net/manual/en/filter.filters.sanitize.php에 주어진 경고 텍스트를 얻지 못했다. 슬래시를 제거하는 필터 살생의 기본 동작입니까? 배열의 슬래시가 제거되지 않는 이유는 무엇입니까? 예를 들어''name [3] [to \ "ll] :" 따라서 슬래시는 제거되지만 키에는 적용되지 않습니다. 그러나 PHP 매뉴얼에서이 동작에 대한 설명을 찾을 수 없었습니다 ... –

관련 문제