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

Related Posts

PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

GET과 POST HTML의 form을 이용하여 값을 전송하는 방식은 get과 post 두 가지가 있습니다. PHP로 그 값을 받아서 사용하는 방법을 알아봅니다. GET 방식으로 전송한 경우 다음은 GET 방식으로 값을 전송하는 간단한 예제입니다. form.php <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>HTML</title> <style> * { ...

PHP / 함수 / implode() / 배열을 하나의 문자열로 만드는 함수

PHP / 함수 / implode() / 배열을 하나의 문자열로 만드는 함수

개요 implode()는 배열에 속한 문자열을 하나의 문자열로 만드는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 implode ( glue, pieces ) glue : 배열의 원소 사이에 들어갈 문자열입니다. pieces : 배열입니다. $jbary = array( 'one', 'two', 'three' ); $jbstr = implode( '/', $jbary ); 원소 사이에 /을 넣어 하나의 문자열로 만듭니다. 즉 $jbstr은 one/two/three입니다. 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> <style> body { font-family: ...

PHP / 연산자 / 할당 연산자

PHP / 연산자 / 할당 연산자

PHP의 할당 연산자는 =입니다. 등호 오른쪽을 등호 왼쪽에 저장합니다.(같다를 표현할 때는 ==를 사용합니다.  비교 연산자를 참고하세요.) $a = 10; 변수 a에 10을 할당합니다. $a = 10; $a = 20; 여러 번 할당하면 마지막에 할당된 것이 값이 됩니다. 즉 변수 a의 값은 20입니다. $a = 10; $a = $a + 10; 기존 값을 사용할 수 있습니다. 변수 a의 값은 ...

PHP / 함수 / strip_tags() / 문자열에서 HTML 태그와 PHP 태그 제거하는 함수

PHP / 함수 / strip_tags() / 문자열에서 HTML 태그와 PHP 태그 제거하는 함수

개요 strip_tags는 문자열에서 HTML 태그와 PHP 태그 제거하는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 strip_tags ( string $str ) allowable_tags로 제거하지 않을 태그를 정할 수 있습니다. 예를 들어 strip_tags( '<p>Lorem <strong>Ipsum</strong></p>' ) 는 모든 태그를 제거합니다. strip_tags( '<p>Lorem <strong>Ipsum</strong></p>', '<strong>' ) 은 strong 태그를 제외한 나머지 태그를 제거합니다. 예제 <!doctype html> <html lang="ko"> <head> ...

PHP / 회원 관리 / 회원 가입 페이지, 회원 가입 완료 페이지

PHP / 회원 관리 / 회원 가입 페이지, 회원 가입 완료 페이지

환경 로컬 서버에 설치된 MariaDB를 사용합니다.(특별한 케이스가 아니라면 MySQL에서도 잘 작동합니다.) 데이터베이스 이름은 codingfactory.net_example, 사용자 이름은 codingfactory, 비밀번호는 1234qwer입니다. 테이블 만들기 id, username, password 세 개의 열을 가진 member 테이블을 만듭니다. id는 자동 증가하는 고유값을 가지는 키입니다. MariaDB > create table member ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> ...

PHP / 함수 / md5() / 문자열에서 md5 해시값 생성하는 함수

PHP / 함수 / md5() / 문자열에서 md5 해시값 생성하는 함수

개요 md5()는 문자열에서 md5 해시값을 생성하는 함수입니다. 해시값에서 원래의 문자열을 만들지는 못합니다. 문자열이 같다면 같은 해시값을 만드므로, 비밀번호를 암호화하여 저장하는 용도로는 맞지 않습니다. It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. 문법 md5( string $str ) str : ...

PHP / 문법

PHP / 문법

HTML 문서에 PHP 코드 넣기 PHP 코드는 HTML 문서에 넣습니다. 이를 실행하기 위해서는 어느 부분이 PHP 코드인지 알려줘야 합니다. PHP 코드 부분을 명시하기 위한 방법은 여러 가지가 있는데, 보통 방법 1을 사용합니다. 방법 1 <?php와 ?> 사이에 PHP 코드를 넣습니다. <?php // PHP Code ?> 가장 일반적인 방법입니다. 방법 2 스크립트 태그를 이용하는 방법입니다. <script language="php"> // ...

PHP / 회원 관리 / 로그인 페이지, 로그인 완료 페이지

PHP / 회원 관리 / 로그인 페이지, 로그인 완료 페이지

로그인 페이지 – login.php 페이지를 열면 POST 방식으로 넘어온 username과 password를 저장합니다. $username에 값이 없다면 이후의 PHP 코드는 실행되지 않습니다. 양식에 값을 입력하고 로그인 버튼을 클릭하면 $username에 값이 있으므로 이후의 PHP 코드가 실행됩니다. $username에 값이 있다면 DB에서 username에 해당하는 password를 가져와서 $encrypted_password에 저장합니다. 일치하는 username이 존재하지 않는다면 $encrypted_password의 값이 없으므로 ‘사용자이름이 존재하지 않습니다.’를 출력합니다. 일치하는 username이 ...

PHP / 함수 / phpversion() / PHP 버전 출력하는 함수

PHP / 함수 / phpversion() / PHP 버전 출력하는 함수

개요 phpversion으로 PHP의 버전을 확인할 수 있습니다. PHP 4 이상에서 사용할 수 있습니다. 문법 phpversion() PHP의 버전을 문자열로 반환합니다. 예제 <!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>phpversion</title> </head> <body> <?php echo '<p>PHP current version is ' . phpversion() . '</p>'; ...

PHP / 함수 / isset() - 설정된 변수인지 확인하는 함수

PHP / 함수 / isset() - 설정된 변수인지 확인하는 함수

개요 isset으로 변수가 설정되었는지 확인할 수 있습니다. PHP 4 이상에서 사용할 수 있습니다. 문법 isset( $var ); $var가 설정되었는지 확인하고, 설정되었으면 TRUE, 설정되지 않았으면 FALSE를 반환합니다. isset( $var1, $var2, ... ); $var1, $var2, …이 설정되었는지 확인합니다. 모든 변수가 설정되었으면 TRUE, 그렇지 않다면 FALSE를 반환합니다. 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>Coding ...

PHP 강좌