ホームページ >バックエンド開発 >PHPチュートリアル >PHP set_error_handler() 関数の使用、phpseterrorhandler_PHP チュートリアル

PHP set_error_handler() 関数の使用、phpseterrorhandler_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:57:45917ブラウズ

PHP set_error_handler() 関数、phpseterrorhandler の使用

プログラムを作成するとき、問題が発生するのは避けられません (問題が頻繁に発生します)。PHP がエラーに遭遇すると、位置、行番号、および理由。大したことではないと言う人も多い。実際、デバッグ段階では、これは実際には問題ではなく、エラー パスを示すことが必要だと思います。

しかし、一部の侵入者にとって、実際のパスが漏洩した場合の影響は想像を絶するものであり、実際、多くのサーバーがこの問題を抱えています。ネットワーク管理者の中には、PHP 設定ファイルの display_errors を Off に設定するだけで問題を解決する人もいます (私たちがそうしたようです) が、この方法はあまりにも消極的すぎると思います。

デバッグのためにエラー情報を返すために PHP が本当に必要になる場合があります。また、何か問題が発生した場合は、ユーザーに説明したり、別のページに移動したりする必要がある場合もあります。

それで、解決策は何でしょうか?

リーリー

PHP は 4.1.0 以降、カスタム エラー処理ハンドラー用の関数 set_error_handler() を提供していますが、これについて知っているスクリプト作成者はほとんどいません。 set_error_handler 関数はエラー パスの漏洩を防ぐことができますが、もちろん他の関数もあります。

set_error_handler の使用法は次のとおりです:

リーリー

今度は、カスタム エラー処理を使用して実際のパスを除外します。変数 $admin があるとします。これを使用して、訪問者が管理者であるかどうかを判断します (この判断は、IP またはログインしたユーザー ID によって行うことができます)

リーリー

このようにエラー処理関数がカスタマイズされていますが、このカスタム関数にエラー処理を引き継ぐにはどうすればよいでしょうか?

リーリー

とても簡単です。このようにして、セキュリティとデバッグの利便性の間の矛盾をうまく解決できます。また、Web サイトのスタイルに合わせてエラー メッセージをより美しくすることも考えられます。

原作者は、私たちの同胞の注意を引くことを願って、注意が必要な2つの点を指摘しました:

リーリー

要約すると、set_error_handler の 3 つの使用法を次に示します。

リーリー

www.bkjia.com本当http://www.bkjia.com/PHPjc/1106388.html技術記事 PHP set_error_handler() 関数、phpseterrorhandler の使用 プログラムを作成すると、必然的に問題が発生します (問題が頻繁に発生します)。PHP でエラーが発生すると、エラー スクリプトの場所が示されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。