2010-07-09 6 views
2

웹 응용 프로그램을 실행하는 동안 일부 페이지에 오류가 포함될 수 있으며 일부 페이지에는 오류가 포함되지 않을 수 있습니다. 페이지에 오류가있는 경우 알림을 받고 싶습니다. 오류가있는 경우 페이지에 오류가 표시 될 수 있지만 가능합니다. 페이지에 오류가 있으면 변수에 값을 설정합니다. 오류가 있음을 알릴 수 있습니다. 오류 로그를 만들고 싶으므로 알림을 받고 싶습니다. 일부 값으로 변수를 설정할 수있는 경우 일부 조건을 사용하여 로그 파일을 만들 수 있습니다. 어떻게 할 수 있습니까?페이지에 오류가있는 경우 변수에서 메시지를 가져 오는 방법은 무엇입니까?

+4

* (참고) * [PHP Manual on Error Handling] (http://de3.php.net/manual/en/book.errorfunc.php) – Gordon

+0

@Gordon, 당신은 대답해야합니다. – UnkwnTech

답변

4

몇 가지 방법이 있습니다. 하나는 setup a custom error handler입니다. PHP는 스크립트 실행 중에 발생하는 대부분의 오류를 잡아내어 사용자 정의 처리기로 전달합니다. 핸들러 안에서 당신이하는 일은 당신에게 달린 것입니다. write to a log을 수행 한 다음 다른 곳으로 또는 원하는대로 리디렉션 할 수 있습니다.

Exceptions에 대해 이야기하는 경우 try/catch 블록에서 깨질 수있는 코드를 줄 바꿈하십시오. 오류가 발생하면 catch 블록 예외를 처리하십시오. 당신이 거기에 넣은 것은 다시 당신에게 달렸습니다.

어떻게 작동하는지 링크 된 페이지를 살펴보십시오. Catching an error, setting a variablewriting to a log은 3 개의 별개의 것들입니다. 그들을 하나씩 분리하고 해결하십시오.

+0

@ Gordon : 나는 결과를 얻었지만 생각이 나지 않았다. 오류가있는 페이지를 어떻게 인식 할 수 있는가? 가능한 경우 몇 가지 예를 들어 주시겠습니까? – udaya

+0

@ Gardon : 이것은 무슨 일이 일어나고 있는지를 알기위한 프로젝트가 아닙니다. – udaya

+0

@udaya 이해가 안 돼요. 무슨 뜻인지 * 오류가있는 페이지의 인식 방법 * – Gordon

1

try {} catch {} 블록을 사용하고 catch {} 부분의 오류 로그에 예외를 작성할 수도 있습니다. 좋아요 :

try { 

    $db = new MyDb('127.0.0.1', 'root', 'root'); 
    if (false === $db) { 
     throw new Exception ('Could not connect to the database.'); 
    } 

    $row = $db->getTable('table_name')->getRowByColumn('id', $_GET['id']); 
    if (null === $row) { 
     throw new Exception ('Row with id ' . $_GET['id'] . ' not found.') 
    } 

    // and so on 

} catch (Exception $e) { 
    $fp = fopen('logs/error.txt', 'w'); 
    fwrite($fp, date('l jS \of F Y h:i:s A') . ': ' . $e->getMessage() . "\n"); 
    fclose($fp); 
} 

아이디어가 있습니다.

오류가 발생한 날짜 대신 스크립트가 인증 된 영역에있는 경우 로그인 한 사용자의 로그인 정보를 추가하여 해당 사용자에게 해당 오류가 있음을 알 수 있습니다.

관련 문제