ホームページ  >  記事  >  バックエンド開発  >  PHP プロンプトに対するいくつかの解決策 unknownindex_PHP チュートリアル

PHP プロンプトに対するいくつかの解決策 unknownindex_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:18:52963ブラウズ

通常、$_post['']、$_get['']を使用してフォーム内のパラメータを取得する場合、 注意事項: 未定義のインデックス: --------;

フォーム POST からデータを受信するときに、次のような未定義のインデックス エラーがよく発生します: $act=$_POST['action']
上記のコードを使用すると、常にプロンプ​​トが表示されます
注意: 未定義のインデックス: D:testpost で動作します。 .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: 通知コードが表示される前に@を付ける、@はエラーがあることを示すまたは、出力しないように警告します。 @$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
; エラー レポート レベルはビット フィールドの重ね合わせです。起動初期化プロセス
; 32 E_CORE_WARNING PHP 起動初期化プロセス中の警告 (致命的ではないエラー)
; 64 E_COMPILE_ERROR コンパイル時の致命的なエラー
; 128 E_COMPILE_WARNING コンパイル時の警告 (致命的ではないエラー)
;エラー
; 512 E_USER_WARNING ユーザー定義の警告 (致命的ではないエラー)
; 1024 E_USER_NOTICE ユーザー定義のリマインダー (多くの場合、意図的なものである可能性があります)
; 2048 E_STRICT コーディング標準化の警告 (上位互換性のための変更方法を推奨)
; 4096 E_RECOVERABLE_ERROR 致命的に近い実行時エラー。捕捉されなかった場合、E_ERROR と同じとして扱われます
; 6143 E_ALL E_STRICT を除くすべてのエラー (PHP6 では 8191、すべてを含む)




http://www.bkjia.com/PHPjc/325444.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/325444.html

通常、$_post['']、$_get[''] を使用して次の形式でパラメータを取得する場合、データ POST を受信するときに、未定義インデックス: --------; というエラーが頻繁に発生します。フォームから次のように:...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。