PHP에서 오류 출력
아무리 조심스럽고 세심한웹 프로그래머는 작업 중에 오류와 부정확성이있을 수 있습니다. 결과적으로 사이트 또는 서비스가 실패 할 수 있습니다. 프로젝트 개발 중 디버깅을 위해 PHP에 오류 출력을 포함 할 수 있습니다.
어떻게 작동합니까?
PHP는이 코드 나 코드에 확실히 반응합니다.스크립트. 다른 경우에 필요한 조치를 수행하는 일부 경우에는 오류가 표시됩니다. 이 메커니즘은 개발자가 코드 섹션을 구현하는 순간에 단점을 수정하는 데 도움이됩니다.
그러나 PHP에서 오류가 출력되는 것은 항상 필요한 것은 아닙니다. 프로젝트 개발이 완료되면 해킹 또는 무단 액세스를 방지하기 위해이 기능을 사용할 수 없게됩니다.
사용자 정의
전체 PHP 인터프리터 구성의 경우,php.ini 파일. 그것은 error_reporting 지시어를 가지고 있습니다. 이것은 단지 PHP의 에러 출력을 정의합니다. 그러나 예외 처리가 포함되어 있더라도 display_errors는 브라우저 창에 표시해야합니다. 비활성화 된 경우 시스템은 오류 대신 빈 페이지를 표시합니다.
예외 분류
PHP의 오류 출력은 조건부로 여러 범주로 나눌 수 있습니다.
오류가 발생하여 스크립트가 작동을 멈 춥니 다. 소위, 치명적인. 여기에는 E_ERROR, E_COMPILE_ERROR;
제거 할 수있는 오류. error_reporting 지시어의 값은 E_WARNING, E_NOTICE 및 기타 값일 수 있습니다.
각 유형을 더 자세하게 고찰하고 그 기능을 설명하는 것은 가치가 있습니다.
E_ERROR. 일반적으로이 유형은 신속하게 제거 할 수 없거나 스크립트 실행을 계속할 수없는 오류를 나타냅니다. 여기에는 메모리 할당 문제가있을 수 있습니다.
E_WARNING. 코드는 계속 작동하지만 메시지에 코드가 표시된 일부 오류가 있다는 경고가 표시됩니다. 중요하지 않습니다.
E_NOTICE. 표시되는 알림 : 오류가 발생할 수있는 일이 발생했습니다. 또한 코드 실행에는 중요하지 않습니다.
E_USER_ERROR. 사용자가 생성 한 오류.
E_ALL. 여기에는 모든 유형의 오류가 포함됩니다. 일반적으로이 옵션은 인터프리터를 설치할 때 기본적으로 사용됩니다.
PHP에서 오류 출력을 사용하는 방법
PHP에서 오류 메커니즘을 사용하는 방법호스팅 또는 로컬 컴퓨터에서 코드가 적용되는 위치에 따라 다를 수 있습니다. 두 번째 경우 개발자는 자신의 서버와 디스플레이를 구성 할 수 있습니다. 즉 php.ini 파일의 구성을 변경할 수 있습니다. display_errors와 error_reporting의 두 가지 지시문을 다음 형식으로 제공하면 충분합니다.
display_errors on
error_reporting E_ALL
이 명령은 모든 오류 메시지를 브라우저 창에 직접 표시합니다.
개발이 가상호스팅하는 경우 보안상의 이유로 대부분의 경우 오류 표시 기능이 비활성화됩니다. 따라서이를 활성화하려면 Apache htaccess 서버 구성 파일을 사용해야합니다. 일반적으로 사이트 루트에 있습니다. 텍스트 편집기를 사용하여 두 줄을 추가해야합니다.
php_flag display_errors on
php_value 오류보고 -1
ini_set () 함수를 사용하여 코드에서 직접 오류를 출력 할 수도 있습니다. 그러나 사이트 개발이 끝나면 응용 프로그램이 보안 문제를 일으킬 수 있다는 점을 염두에 두어야합니다.
파일에 쓰기
PHP를 사용하면 발생한 모든 오류를 하드 디스크의 특정 위치에 저장할 수 있습니다. PHP 오류 출력을 파일에 포함 시키려면 다음 세 가지 방법을 사용할 수 있습니다.
php.ini 파일을 편집하십시오. 여기서 두 줄을 정의해야합니다. 첫 번째 것은 log_errors = On이며 실제로 출력 기능을 활성화합니다. 두 번째는 원하는 / file에 대한 error_log = path /입니다.
htaccess를 편집하십시오. 두 줄을 추가 할 수도 있습니다. php_value log_errors "on"및 php_value error_log 경로 /.
필요한 코드 위치에서 ini_set 함수를 사용하십시오.
결론
PHP의 오류 출력은 다음에서 필요한 도구입니다.코드를 디버깅합니다. 그러나 잠재적으로 취약한 영역을 만들 수도 있습니다. 따라서이 메커니즘을 신중하고 신중하게 사용해야합니다. 사이트 또는 서비스가 테스트의 모든 단계를 통과 한 후에는 공격자가 중요한 데이터에 액세스 할 수있는 오류를 표시하지 않아야합니다.