PHP のエラー報告機能は、これらのエラーを特定して見つけるのに役立ちます。 PHP によって提供されるこれらの詳細な説明は、悪意のある攻撃者にも見られる可能性があり、これは良くありません。エラー メッセージを一般公開しないようにすることが重要です。これは簡単です。display_errors をオフにするだけです。もちろん、エラー情報を取得したい場合は、log_errors オプションをオンにして、error_log オプションにエラー ログ ファイルの保存パスを設定します。
エラー報告レベルの設定により一部のエラーが検出されなくなる可能性があるため、error_reporting を少なくとも E_ALL に設定する必要があります (E_ALL | E_STRICT が最高の設定です)。 推奨されないヒントなど、下位互換性に関する提案を提供します)。
すべてのエラー報告レベルはどのレベルでも変更できるため、共有ホスティングを使用している場合は、php.ini、httpd.conf、または .htaccess などの構成ファイルに変更を加える場合、プログラム内でエラー報告レベルの構成ステートメントを実行できます:
CODE:
<?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'); ?>
Tips
http://www. php .cn/ php.iniのオプション構成について詳しく説明します。
PHP では set_error_handler( ) を渡すこともできます Function は独自のエラー処理関数を指定します。
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'); } ?>
Tips
PHP 5 では set_error_handler( ) 2 番目のパラメーターを渡して、定義されたエラー処理関数が実行されるエラー条件を制限します。たとえば、警告レベルのエラーを処理する関数を作成します。
CODE:
<?php set_error_handler('my_warning_handler', E_WARNING); ?>
上記は、PHP セキュリティ エラー レポートの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www) に注意してください。 .php.cn )!