1. 通常 $_post[''] または $_get[''] を使用してフォーム内のパラメーターを取得する場合、 注意: 未定義のインデックス: --------;
そして、フォームから POST されたデータを受信するときに、未定義のインデックス エラーがよく発生します例: $act=$_POST['action']; 上記のコードを使用すると、D:testpost.php の 20 行目で常に Notice: Unknown インデックス: act というプロンプトが表示されます。 .. .... このようなリマインダーが表示されるまで待ちます。これらはエラーではなく PHP プロンプトです。PHP 自体は事前に変数を宣言しなくても直接使用できますが、宣言されていない変数についてはプロンプトが表示されます。通常、正式な Web サイトではプロンプトがオフになり、エラー メッセージもオフになります。
2. 問題の説明
つまり、PHP はデフォルトで未宣言の変数の入力を求めるプロンプトを表示しますが、このデフォルトのプロンプトは無視できます
3. 解決策方法 1: サーバー構成の変更
php.ini のエラー設定でエラー表示モードを変更します: error_reporting = E_ALL を error_reporting = E_ALL & ~E_NOTICE に変更します
変更を有効にしたら、Apache サーバーを再起動します。
方法 2: 変数を初期化する
つまり、変数を定義した後、それは具体的に初期化されますが、これは変数がイベント駆動によって初期化されたかどうかを判断することはできません
方法3: isset($_post['']), empty($_post['']) if --else判定を行う
方法 4: 通知コードが表示される前に @
を追加します @ は、この行にエラーがあるか、出力しない警告があることを意味します。例: @$username=$_post['username']; のように、変数の前に @ を追加します。アクション']=='保存' ) { ...
このように、このステートメントで警告が発生しても出力されなくなります
方法 5: value メソッドを置き換える関数を自分で構築する
関数コードは次のとおりです:
リーリー
4. 分析と要約
PHP は優れたリマインダー メカニズムを提供しますが、これは私たちが望むものではない可能性があります。これにより、リマインダーが観察されたときに確実にリマインダーが処理され、PHP によって提供されるリマインダー メカニズムが保持されます。 PHP
上記の内容は、PHP で未定義のインデックス プロンプトを解決する方法 (複数の方法) について編集者が共有した関連知識です。皆様のお役に立てれば幸いです。
興味があるかもしれない記事: