PHP / 에러 출력하는 방법, 에러 출력하지 않는 방법

PHP 코딩을 하고 웹 브라우저에서 실행을 시킵니다. 그런데 원하는 결과가 나오지 않거나 '페이지를 표시할 수 없습니다' 같은 메시지가 나오는 경우가 있습니다.

반대로 결과를 도출하는 데는 문제가 없으나 에러 메시지가 나오는 경우가 있습니다.

보통 개발 과정에서는 어떤 에러든 표시하는 게 좋고, 서비스 중이라면 왠만한 에러는 보이지 않는 게 좋습니다. 어떻게 에러 표시 여부를 제어하는지 알아보겠습니다.

예제 문서

아래는 에러가 있는 문서입니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>PHP</title>
    <style>
      body { font-family: Consolas, sans-serif; }
      input, button { font-family: inherit; font-size: inherit; }
    </style>
  </head>
  <body>
    <p><?php echo $asd; ?></p>
  </body>
</html>

에러가 출력되도록 설정되어 있다면 아래와 같은 메시지가 나옵니다.

에러 출력하는 방법

에러가 나오지 않는다면 아래의 방법으로 에러를 출력할 수 있습니다.

문서에서 설정하는 방법

문서에 다음의 코드를 추가합니다.

<?php
  error_reporting( E_ALL );
  ini_set( "display_errors", 1 );
?>

전체 코드는 다음과 같습니다.

<?php
  error_reporting( E_ALL );
  ini_set( "display_errors", 1 );
?>
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>PHP</title>
    <style>
      body { font-family: Consolas, sans-serif; }
      input, button { font-family: inherit; font-size: inherit; }
    </style>
  </head>
  <body>
    <p><?php echo $asd; ?></p>
  </body>
</html>

서버에서 설정하는 방법

php.ini에 있는 다음과 같은 코드를

display_errors = Off

다음과 같이 변경합니다.

display_errors = On

그리고 웹서버를 다시 시작하거나 다시 로드합니다.

에러 출력하지 않는 방법

에러가 나온다면 아래의 방법으로 에러를 출력하지 않을 수 있습니다.

문서에서 설정하는 방법

문서에 다음의 코드를 추가합니다.

<?php
  ini_set( 'display_errors', '0' );
?>

서버에서 설정하는 방법

php.ini에 있는 다음과 같은 코드를

display_errors = On

다음과 같이 변경합니다.

display_errors = Off
같은 카테고리의 다른 글
PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

Ubuntu에 Apache로 웹서버를 만들고 PHP를 사용할 수 있게 만든 경우, 기본적으로 확장자가 php인 경우에만 PHP 코드를 인식합니다. 만약 확장자가 html일 때로 PHP 코드가 인식되도록 하고 싶다면, Apache 설정을 바꿔줘야 합니다. /etc/apache2/mods-enabled/mime.conf 파일을 엽니다. 다음 코드를 추가합니다. AddType application/x-httpd-php .html 확장자가 htm인 경우에도 PHP를 인식하도록 하고 싶다면 다음처럼 합니다. AddType application/x-httpd-php .html .htm 웹서버를 다시 로드합니다. service apache2 ...

PHP / 두 날짜 사이의 기간(차이) 구하는 방법

PHP / 두 날짜 사이의 기간(차이) 구하는 방법

두 날짜 사이의 차이 구하기 시작하는 날짜를 변수에 담는다. $from = new DateTime( '2022-01-01' ); 끝나는 날짜를 변수에 담는다. $to = new DateTime( '2022-03-31' ); diff 또는 date_diff로 차이를 구한다. echo $from -> diff( $to ) -> days; echo date_diff( $from, $to ) -> days; 2022년 1월은 31일, 2월은 28일, 3월은 31일로 총 90일이다. 위의 방식으로 계산하면 89일이 ...

PHP / 회원 관리 / 세션(SESSION) 추가하기, 로그아웃 페이지

PHP / 회원 관리 / 세션(SESSION) 추가하기, 로그아웃 페이지

login.php 로그인 한 상태인지 로그인 하지 않은 상태인지 파악하기 위해 login-ok.php로 넘어가기 전에 세션을 시작합니다. 그리고 username을 $_SESSION에 담습니다. <?php $username = $_POST; $password = $_POST; if ( !is_null( $username ) ) { $jb_conn = mysqli_connect( 'localhost', 'codingfactory', '1234qwer', 'codingfactory.net_example' ...

PHP / Session / 세션 값 출력하는 방법

PHP / Session / 세션 값 출력하는 방법

세션(Session)에 값을 저장했을 때, 그 값을 출력하는 방법을 간단한 예제로 알아보겠습니다. 세션을 초기화합니다. 이때 id가 하나 발급됩니다. session_start(); 세션의 no에 123을, username에 abc를 저장합니다. $_SESSION = 123; $_SESSION = 'abc'; 세션의 id를 출력합니다. echo session_id(); 세션의 no의 값을 출력합니다. echo $_SESSION; 세선의 username의 값을 출력합니다. echo $_SESSION; 세션의 모든 값을 출력합니다. var_dump( $_SESSION ); 다음은 전체 ...

PHP / 조건문 / if, elseif, else

PHP / 조건문 / if, elseif, else

if 설명 if로 조건을 만족할 때 실행할 작업을 정한다. 문법 if ( condition ) { statement; } condition이 TRUE이면 statement을 실행하고, FALSE이면 실행하지 않는다. 중괄호 대신 콜론과 endif를 이용할 수도 있다. if ( condition ): statement; endif; 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>Coding Factory</title> <style> ...

PHP / addslashes(), stripslashes()

PHP / addslashes(), stripslashes()

addslashes() 작은 따옴표, 큰 따옴표, 백슬래시 앞에 백슬래시를 추가한다. 즉, PHP 'PHP' "PHP"를 PHP \'PHP\' \"PHP\"로 변경한다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> <style> * { font-family: "Consolas", monospace; ...

PHP / 반복문 / foreach

PHP / 반복문 / foreach

foreach는 배열의 각 값에 대하여 반복 작업을 합니다. 문법 foreach ( array_expression as $value ) { statement; } foreach ( array_expression as $value ) : statement; endforeach; 예제 배열 jba의 각 값을 변수 jbv에 넣습니다. 변수 jbv를 두 배하고 1을 뺀 값을 변수 jbr에 넣습니다. 변수 jbr을 출력합니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> ...

PHP / 함수 / mysqli_connect() / MySQL server 또는 MariaDB Server에 연결하는 함수

PHP / 함수 / mysqli_connect() / MySQL server 또는 MariaDB Server에 연결하는 함수

개요 mysqli_connect는 MySQL server 또는 MariaDB Server에 연결하는 함수입니다. 문법 mysqli_connect( host, username, password, databasename, port, socket ); 예제 1 데이터베이스 서버에 연결하고 결과를 출력합니다. <?php $jb_connect = mysqli_connect( 'localhost', 'jb', '1234', 'employees' ); var_dump( $jb_connect ); ?> 연결에 성공한 경우입니다. 연결에 실패하면 false를 반환합니다. 예제 2 연결에 성공하면 Success, 실패하면 Failure를 출력합니다. <!doctype html> <html lang="ko"> <head> ...

PHP / 함수 / substr() / 문자열의 일부분을 추출하는 함수

PHP / 함수 / substr() / 문자열의 일부분을 추출하는 함수

개요 substr()은 문자열의 일부분을 추출하는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 substr( string, start ) string : 추출의 대상이 되는 문자열입니다. start : 추출을 시작하는 위치입니다. length : 추출할 문자의 개수입니다. 값이 없으면 문자열의 끝까지 추출합니다. 음수일 때는 위치를 뜻하고, 그 위치 앞까지의 문자를 추출합니다. substr( 'abcdefg', 3 ); abcdefg에서 3 위치의 문자는 d입니다. ...

PHP / 연산자 / 비교 연산자

PHP / 연산자 / 비교 연산자

비교 연산자는 두 값을 비교하는 연산자입니다. $a == $b $a와 $b가 같으면 TRUE를 반환합니다. 예를 들어 $a = 123; $b = 123; 이면 TRUE입니다. 또한 $a = 123; $b = '123'; 일 때도 TRUE입니다. $a === $b $a와 $b가 같고, 자료형도 같아야 TRUE를 반환합니다. 예를 들어 $a = 123; $b = 123; 이면 TRUE입니다. 하지만 $a = 123; $b = '123'; 은 FALSE입니다. $a != $b $a가 $b와 같지 ...