PHPで未定義のインデックスの問題を解決する方法

不言
リリース: 2023-04-01 14:24:01
オリジナル
3872 人が閲覧しました

このプロンプトはエラー表示モードを設定することで非表示にできますが、これには隠れた危険もあります。つまり、これらのプロンプトがサーバーのログに記録され、ログ ファイルが異常に大きくなるということです。通常は $_post[''] を使用します。$_get[''] は次の形式でパラメータを取得するときに表示されます。

Notice

: 未定義のインデックス: --------; フォームの POST をよく受け取ります。データは、次のように未定義のインデックス エラーを報告します。 $act=$_POST['action'];

上記のコードを使用すると、常にプロンプ​​トが表示されます。

注意: 未定義のインデックス: D で動作します。 :\test\pos​​t.php 20 行目
さらに、場合によっては
通知: 未定義の変数: 送信... などのプロンプトが表示されます。
上記は PHP 自体のエラーではなく、PHP プロンプトです。事前に変数を宣言する必要はありません。直接使用できますが、宣言されていない変数についてはプロンプトが表示されます。通常、正式な Web サイトではプロンプトがオフになり、エラー メッセージもオフになります。

解決策:
方法 1: サーバー構成の変更
php.ini のエラー構成でエラー表示モードを変更します。error_reporting = E_ALL を
error_reporting = E_ALL & ~ に変更します。 E_NOTICE
変更を有効にするために、変更後に APCHE サーバーを再起動します。
方法 2: 変数を初期化します。
方法 3: 判定 isset($_post['']), empty($_post['']) if --else
方法 4: 通知コードが表示される前に @ を追加します。@ はこの行を表します Doエラーまたは警告がある場合は出力されません。 @$username=$_post['username']
if (@$_GET['action']=='save のように、変数の前に @ を追加します) ') { ..
方法 5: 最後の方法は、他の人が作成した関数であり、この関数を通じて値が転送されます。
関数を定義します:

function _get($str){ 
$val = !empty($_GET[$str]) ? $_GET[$str] : null; 
return $val; 
}
ログイン後にコピー

それを使用するときは、$_GET['str']~

[PHP-Core-Error]

の代わりに _get('str') を使用します。 error_reporting = E_ALL & ~E_NOTICE
; エラー報告レベルはビット フィールドの重ね合わせです。 E_STRICT
; 1 E_ERROR 致命的な実行時エラー
;性的エラー)
; 4 E_PARSE コンパイル時の解析エラー
; 8 E_NOTICE 実行時のリマインダー (多くの場合、意図的なものである可能性があります)
; 16 E_CORE_ERROR PHP 起動初期化プロセス中の致命的なエラー
; 32 E_CORE_WARNING PHP 起動初期化プロセス中の警告 (致命的ではないエラー)
; 64 E_COMPILE_ERROR コンパイル中の致命的なエラー
; 128 E_COMPILE_WARNING コンパイル中の警告 (致命的ではないエラー)
; 256 E_USER_ERROR ユーザ定義の致命的なエラー
; 512 E_USER_WARNING ユーザー定義の警告 (致命的ではないエラー)
; 1024 E_USER_NOTICE ユーザー定義のリマインダー (多くの場合、意図的なものである可能性があります)
; 2048 E_STRICT エンコーディングの標準化に関する警告 (推奨される変更方法)前方互換性のため)
; 4096 E_RECOVERABLE_ERROR 致命的に近い実行時エラー。検出されなかった場合、E_ERROR として扱われます。
; 6143 E_ALL E_STRICT を除くすべてのエラー (PHP6 8191 では、すべてを含みます)

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP でstrip_tags() を使用して HTML タグを削除しても、空のソリューションが残る


PHP の使用方法ユーザークライアントの実際の IP を取得するため


#

以上がPHPで未定義のインデックスの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート