2013-10-25 3 views
9

error_reporting 호출로 가득 차있는 응용 프로그램을 실행하고 있지만 감가 상각 된 많은 경고가있는 PHP 5.5를 실행하고 있습니다. 이렇게 php.ini 파일을 올바르게 구성했습니다.런타임에 error_reporting()을 무시하도록 PHP를 구성하려면 어떻게해야합니까?

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 

그러나 모든 error_reporting() 호출이이를 무시합니다. error_reporting()에 대한 런타임 호출을 무시하도록 구성하는 방법이 있습니까?

모든 error_reporting() 호출을 변경하는 것은 정말 번거 롭습니다. 특히 응용 프로그램을 정기적으로 업데이트해야하며 설치 후 해킹 스크립트를 실행하지 않아야합니다. 나는 응용 프로그램의 이름을 언급하지 않으

, 그것은이 vBulletin에 5

+0

을 " 앱의 이름은 언급하고 싶지 않습니다. VBulletin 5입니다. " 네. 애플리케이션에'error_reporting()'호출이 있다면, 이것은 나쁜 PHP 개발자에게 힌트가됩니다. 'error_reporting'은 서버 설정 (즉,'php.ini')을 통해 설정되어야합니다. – feeela

+0

'str_replace ('error_reporting', '', $ code);';-) –

+0

함수를 "강제로"다시 정의 할 수 있다면 좋을 것입니다. 자바 스크립트에서 할 수있는 것처럼. 오 잘. –

답변

8

의 INI-설정하면 error_reporting() 기능을 비활성화하는 데 사용할 수있는 disable_functions을. 그런 식으로 응용 프로그램은이 함수를 통해 오류보고 수준을 설정할 수 없습니다.

disable_functions = error_reporting 

은 내부 기능이 지시자를 사용하지 않도록 할 수있다. 사용자 정의 함수는 영향을받지 않습니다. 이 지시문은 php.ini에 설정해야합니다. 예를 들어 httpd.conf에서 설정할 수 없습니다.

참조 : http://www.php.net/manual/en/ini.core.php#ini.disable-functions

+0

대답이 올바른 것으로 나타납니다. –

+6

악마와 * 극단 * 악의 투쟁. 나는 그것을 좋아한다! +1 : –

4

당신은 당신이 오버라이드 (override) 할 수없는 값으로 error_reporting을 설정 php_admin_value를 사용할 수있는 웹 서버 구성을 제어 할 수있는 경우.

the documentation에 따르면이 파일은 .htaccess 파일에서 사용할 수 없으므로 전체 서버에서 사용해야합니다.

또 다른 가능성은 disable_functions을 사용하여 error_reporting을 비활성화하는 것입니다. 단점은 당신이 그것을 사용할 때마다 경고를 얻을 것이다 것입니다,하지만 당신은 그 주위를 얻을 수 있습니다 :

에만 지정된 스크립트에 영향을 php.ini 파일에 섹션을 추가 할 수 있습니다

:

[PATH=<path>] 
error_reporting = 0 
disable_functions = "error_reporting" 
+0

하하. 그래, 경고하지만 이건 내가 생각하고 있었던 일이야. 고마워 –

관련 문제