天天看點

PHP 安全手冊 第二條 關閉錯誤資訊提示

<?php

  ini_set('error_reporting', E_ALL | E_STRICT);

  ini_set('display_errors', 'Off');

  ini_set('log_errors', 'On');

  ini_set('error_log', '/usr/local/apache/logs/error_log');


  ?>      

無法使用PHP.INI時,使用上面的指令進先設定PHP.INI

 PHP還允許您通過 set_error_handler( ) 函數指定您自已的出錯處理函數:

CODE:

<?php
  set_error_handler('my_error_handler');
  ?>      

 上面程式指定了您自已的出錯處理函數my_error_handler( ); 下面是一個實際使用的示例:

CODE:

<?php
  function my_error_handler($number, $string, $file, $line, $context)
  {
    $error = "=  ==  ==  ==  ==\nPHP ERROR\n=  ==  ==  ==  ==\n";
    $error .= "Number: [$number]\n";
    $error .= "String: [$string]\n";
    $error .= "File:   [$file]\n";
    $error .= "Line:   [$line]\n";
    $error .= "Context:\n" . print_r($context, TRUE) . "\n\n";
    error_log($error, 3, '/usr/local/apache/logs/error_log');
  }
  ?>      

小提示

 PHP 5還允許向set_error_handler( )傳遞第二個參數以限定在什麼出錯情況下執行出定義的出錯處理函數。比如,現在建立一個處理告警級别(warning)錯誤的函數:

CODE:

<?php
  set_error_handler('my_warning_handler', E_WARNING);
  ?>