検索
ホームページバックエンド開発PHPチュートリアルPHP プログラマーのためのデバッグ テクニック_PHP チュートリアル

PHP プログラマーのためのデバッグ テクニック_PHP チュートリアル

Jul 13, 2016 pm 05:38 PM
phpできるテクノロジー時間持っているプログラマー導入コーディングデバッグ

はじめに

コーディング時に大幅に時間を節約できる PHP デバッグ手法が多数あります。効果的かつ基本的なデバッグ手法は、エラー報告を有効にすることです。もう 1 つの少し高度なテクニックには、print ステートメントの使用が含まれます。これは、実際に画面に表示される内容を表示することで、見つけにくいバグを正確に特定するのに役立ちます。 PHPEclipse は、一般的な構文エラーを強調表示する Eclipse プラグインで、デバッガーと組み合わせて使用​​してブレークポイントを設定できます。

この記事で説明されている概念を学ぶには、PHP、Web サーバー、および Eclipse が必要です。デバッガー拡張機能は、PHP バージョン V5.0.3 をサポートします。

PHP で作成されたページを解析してブラウザに表示するには、Web サーバーが必要です。この記事ではApache2を使用しています。ただし、どの Web サーバーでも十分です。

この記事で紹介したデバッグ手法の一部を利用するには、Eclipse V3.1.1 とプラグイン PHPEclipse V1.1.8 をインストールする必要があります。 Eclipse には Java™ テクノロジーが必要なので、Java™ テクノロジーもダウンロードしてください。

PHP デバッガー拡張モジュールも必要です。取り付けは少し面倒です。デバッガー拡張機能のインストール手順に慎重に従ってください。次に、php.ini ファイル内の、PHP 拡張機能のロードと構成を必要とする行をコメント アウトします。デバッガを使用する必要がある場合は、コメントを解除してください。

エラーメッセージ

エラー メッセージは、開発者としての防御の最前線です。エラー メッセージを表示するように構成されていないサーバー上で PHP でコードを開発したい人はいません。ただし、コードをデバッグし、実行する準備ができたら、エラー レポートがオフになっていることを確認する必要があります。これは、サイト訪問者にエラー メッセージが表示されることを望まないためです。これにより、エラー メッセージを悪用するのに十分な情報が提供されてしまいます。サイトの弱点とサイトをハッキングします。

エラーをスローまたは生成した正しいコード行を示すエラー メッセージを利用することもできます。このように、デバッグは、生成されたエラーが表示される行番号をブラウザーで調べ、コード内のその行を検査することになります。後で、PHPEclipse プラグインが、その場で構文エラーに下線を引いたり、ファイルを保存するときに赤い "x" でマークしたりすることで、開発やデバッグ中に非常に役立つことがわかります。

まず、エラーレポートを有効にし、php.ini ファイルでエラーレポートのレベルを設定する方法を見てみましょう。次に、Apache の構成ファイルでこれらの設定をオーバーライドする方法を学びます。

PHPエラーレポート

php.ini ファイルには多くの構成設定があります。 Linux に PHP および Apache 2 をインストールする手順 (「参考文献」を参照) に記載されているように、php.ini ファイルを設定し、適切なディレクトリに配置しておく必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。 2 つの変数とそのデフォルト値は次のとおりです:

display_errors = オフ
error_reporting = E_ALL

これら 2 つの変数の現在のデフォルト値は、php.ini ファイル内で検索すると見つかります。 display_errors 変数の目的は明らかです。この変数は、エラーを表示するかどうかを PHP に指示します。デフォルト値はオフです。ただし、開発プロセスを容易にするために、この値をオンに設定します。

display_errors = オン

error_reporting 変数のデフォルト値は E_ALL です。この設定では、不適切なコーディング方法から無害なヒント、エラーに至るまで、あらゆるものが表示されます。 E_ALL は、ブラウザの出力を混乱させる小さな事柄 (変数が初期化されていないなど) についてのヒントも画面上に表示するため、開発目的には少し粒度が高すぎます。私が知りたいのはエラーと不適切なコーディング方法だけであり、無害なヒントは知りたいわけではありません。したがって、error_reporting のデフォルト値を次の値に置き換えてください:

error_reporting = E_ALL & ~E_NOTICE

Apacheを再起動すれば準備完了です。次に、Apache で同じことを行う方法を学びます。

サーバー上のバグレポート

コンピューター上に複数のバージョンの PHP が存在する可能性があるため、Apache の動作によっては、PHP でエラー報告を有効にしても機能しない場合があります。 Apache は 1 つの php.ini ファイルしか参照できないため、Apache が使用している PHP バージョンを判断することが難しい場合があります。 Apache が自身の設定にどの php.ini ファイルを使用しているかわからないことは、セキュリティ上の問題です。ただし、正しいエラー レベルが設定されるように Apache で PHP 変数を構成する方法があります。

また、サーバー側でこれらの構成変数を設定して php.ini ファイルをオーバーライドまたはプリエンプトして、より高いレベルのセキュリティを提供する方法を知っておくとよいでしょう。

Apache を構成するときは、/conf/httpd.conf にある http.conf ファイルの基本構成がすでに公開されている必要があります。

php.ini ファイルで既に行ったことを行うには、次の行を httpd.conf に追加し、php.ini ファイルを上書きします。

php_flag display_errors がオン

php_value error_reporting 2039

これにより、php.ini ファイルに既に設定されている display_errors のフラグと error_reporting の値がオーバーライドされます。値 2039 は E_ALL および ~E_NOTICE を表します。 E_ALL を使用する場合は、値を 2047 に設定します。繰り返しますが、Apache を再起動する必要があります。

次に、サーバーでのエラー報告をテストします。

テストバグレポート

エラー報告を有効にすると、時間を大幅に節約できます。 PHP のエラーはコード内のエラーを示しています。単純な PHP ファイル test.php を作成し、リスト 1 に示すように定義します。
リスト 1. エラーを生成する単純な PHP

print("次の行ではエラーが発生します。
");
printaline("お願いしますか?");
print("上記エラーのため表示されません。");
?>
最初の print() ステートメントは、その内容を Web ブラウザーに表示します。ただし、2 番目のステートメントではエラーが生成され、Web ページに表示されます。これにより、図 1 に示すように、最後の print() ステートメントが機能しなくなります。

PHP プログラマーのためのデバッグ テクニック_PHP チュートリアル
バグレポートが有効になりました。次に、print ステートメントを使用してアプリケーションのデバッグを支援します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486489.html技術記事はじめに コーディング時に大幅な時間を節約できる PHP デバッグ手法が多数あります。効果的かつ基本的なデバッグ手法は、エラー報告を有効にすることです。もう一つのもう少し高度な技術パッケージ...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません