1. PHP のデフォルトのエラー処理方法
PHP のデフォルトのエラー処理は非常に簡単です。ファイル名、行番号、エラーを説明するメッセージがブラウザに送信されます。エラー処理は、スクリプトや Web アプリケーションを作成する際の重要な部分です。コードにエラー検出コーディングが欠けていると、プログラムは専門的ではないように見え、セキュリティ リスクへの扉が開かれてしまいます。
2. 改善された処理メソッド:
1. シンプルな「die()」ステートメント
2. error_reporting(); PHP のエラーレベルを設定し、現在のレベルを返す
3. カスタマイズされたエラーとエラートリガー
3 .PHP エラー レベル:
1 E_ERROR 致命的なランタイム エラー。 エラーを回復することはできません。スクリプトの実行は一時停止されました
2 E_WARNING 致命的ではないランタイム エラー。 スクリプトの実行は停止しません
4 E_PARSE コンパイル時の解析エラー。解析エラーは、アナライザー
8 E_NOTICE ランタイム通知によってのみ生成される必要があります。
16 E_CORE_ERROR PHP 起動時の致命的なエラー。これは、PHP コアの E_ERROR
32 に似ています。 E_CORE_WARNING PHP 起動時の致命的ではないエラーです。これは、PHP コアの E_WARNING 警告に似ています
64 E_COMPILE_ERROR 致命的なコンパイル時エラー。 これは、Zend スクリプト エンジンによって生成される E_ERROR
128 E_COMPILE_WARNING 致命的ではないコンパイル時エラーや、Zend スクリプト エンジンによって生成される E_WARNING 警告
256 E_USER_ERROR 致命的なユーザー生成エラーに似ています。
512 E_USER_WARNING 致命的ではないユーザー生成の警告。
1024 E_USER_NOTICE ユーザーが生成した通知。
2048 E_STRICT コードの最高の相互運用性と上位互換性を確保するために、PHP によるコード変更の提案を有効にします。
4096 E_RECOVERABLE_ERROR は致命的なエラーをキャッチします。
8191 E_ALL すべてのエラーと警告。
4. php エラーレポート:
php はデフォルトでエラーレポートを有効にしません:
1. php.ini ファイルを設定します:
display_errors =Off を display_errors = On に変更します。 PHP はデフォルトですべてのエラーを表示しますが、いくつかの無害なプロンプトを表示する必要はありません。さらに、エラー レベルを設定する必要があります: error_reporting = E_ALL を次のように変更します: error_reporting= E_ALL & ~E_NOTICE
別の: エラー エコー、一般的に使用されます。開発モードですが、エラー エコーによって多くの機密情報が公開される可能性があり、攻撃者の次の攻撃が容易になります。正式な環境では、このオプションをオフにして、log_error=on に設定することをお勧めします。この時点でエラーが発生した場合は、「サーバー エラー」というプロンプトが表示されますが、エラー プロンプトは表示されず、エラー情報がログに記録されます。 。
2.
<?php error_reporting(0); // 关闭错误报告 error_reporting(E_ERROR | E_WARNING | E_PARSE); // 报告 runtime 错误 error_reporting(E_ALL); // 报告所有错误 error_reporting(E_ALL & ~E_NOTICE); // 报告 E_NOTICE 之外的所有错误 ?>
5. プログラムにカスタム エラー ハンドラーとエラー トリガーを追加します。
カスタマイズされたエラー ハンドラー:
user_error_function(error_level,error_message,error_file,error_line,error_context)(用户自己定义,用在set_error_handler中调用)
error_level: 必須 (エラー レベル) 定義されたエラーはエラー メッセージを指定します) error_file、行、error_context: オプション(エラーが発生したファイル、行番号、その他の情報) ハンドラー関数 (error_reporting() は失敗します) およびユーザー定義のエラー ハンドラーは、必要に応じてスクリプトを終了 (die()) する必要があります。
set_error_handler() には 1 つのパラメーター (カスタム エラー ハンドラー) のみが必要で、2 番目のパラメーターを追加してエラー レベルを指定できます。
trigger_error()触发错误
在脚本中用户输入数据的位置,当用户的输入无效时触发错误的很有用的。可以在脚本中任何位置触发错误,通过添加的第二个参数,您能够规定所触发的错误级别。可能的错误类型:E_USER_ERROR, E_USER_WARNING, E_USER_NOTIC.
例子:
//自定义错误处理器 function myErrorHandler($errno, $errstr, $errfile,$errline){ if(!(error_reporting() &$errno)){return;} switch ($errno){ case E_USER_ERROR: echo "<b>MyERROR</b> [$errno] $errstr<br/>"; echo "错误行:$errline 在文件:$errfile之中<br/>"; echo " PHP版本: " .PHP_VERSION ." (" .PHP_OS .")<br/>"; break; case E_USER_WARNING: echo "<b>MyWARNING</b> [$errno] $errstr<br/>"; break; case E_USER_NOTICE: echo "<b>MyNOTICE</b> [$errno] $errstr<br />"; break; default: echo "Unknown error type:[$errno] $errstr<br />"; break; } return true; } //测试函数 functiontrigger_test($age){ if($age <= 0|| $age > 999) trigger_error("年龄不合法:$age岁",E_USER_ERROR); if($age < 18) trigger_error("未成年:$age岁",E_USER_WARNING); if($age > 40&& $age < 100) trigger_error("年龄稍大:$age岁",E_USER_NOTICE); } //如果只是简单统一地处理错误: $errorHandler = set_error_handler("myErrorHandler"); trigger_test(1000);//会抛出一个error级的错误 //如果要分别处理不同错误级别则需要构造不同级别的错误处理器 function myError($errno, $errstr,$errfile, $errline){ //具体处理方法 } function myWarning($errno, $errstr, $errfile, $errline){ //具体处理方法 } function myNtice($errno, $errstr, $errfile, $errline){ //具体处理方法 } set_error_handler('myError',E_USER_ERROR); set_exception_handler('myWarning',E_USER_WARNING); set_exception_handler('myNtice',E_USER_NOTICE); trigger_error('故意抛出个错误,还是很严重的哪一种!',E_USER_ERROR);
6. 屏蔽PHP错误提示
方法一:
在有可能出错的函数前加@,然后or die("")
如: @mysql_connect(...) or die("Database Connect Error")
注:@其实它是错误抑制符,即即使出现错误,也无视出现的错误信息,继续执行下边的代码;好处是不会输出错误信息。
Or die当在脚本中调用die()和exit()时,将会终止整个脚本。它们都可用于阻止脚本继续执行,而使得某些重要的操作(如建立一条数据库连接)不会发生。你还可以给die()和exit()传递一个将在浏览器中打印出来的字符串。
方法二:
编辑php.ini ,将"display_errors =off" , 同时将log_error=on, error_log = /var/log/php-error.log
方法三:
在php脚本前加error_reporting(0),屏蔽所有错误提示。
其中,error_reporting 配置错误信息回报的等级。
语法:int error_reporting(int [level]);
返回值:整数
函数种类:PHP 系统功能
相关推荐:
以上がPHPエラー処理インスタンスメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

phpisusededemingemailsduetoitsbuilt-inmail()functionandsupportiveLibrarieslikephpmailerandswiftmailer.1)usethemail()functionforbasicemails、butithaslimitations.2)emploadforadvancedfeatureSlikelikelivableabableabuses.3)雇用

PHPパフォーマンスボトルネックは、次の手順で解決できます。1)パフォーマンス分析にXdebugまたはBlackfireを使用して問題を見つける。 2)データベースクエリを最適化し、APCUなどのキャッシュを使用します。 3)array_filterなどの効率的な関数を使用して、配列操作を最適化します。 4)bytecodeキャッシュ用のopcacheを構成します。 5)HTTP要求の削減や写真の最適化など、フロントエンドを最適化します。 6)パフォーマンスを継続的に監視および最適化します。これらの方法により、PHPアプリケーションのパフォーマンスを大幅に改善できます。

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測定性、テスト可能性、および維持可能性。

cachingemprovesppperformancebystring of computationsorquickretrieval、還元装置の削減は、reducingerloadendenhancersponseTimes.efcectivestrategiesInclude:1)opcodecaching、compiledphpscriptsinmemorytoskipcompilation;


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
