PHPプロンプトの未定義インデックスの解決策

一个新手
リリース: 2023-03-15 22:44:01
オリジナル
2138 人が閲覧しました

通常、$_post['']、$_get['']を使用してフォーム内のパラメータを取得すると、 Notice: Unknown Index: --------; というメッセージが表示されることがよくあります。データは、次のように未定義のインデックス エラーを報告します:

$act=$_POST['action'];
ログイン後にコピー

上記のコードを使用すると、常に Notice: 未定義のインデックス: D:testpost.php の行 20 が表示されます

さらに、場合によっては、

Notice: 未定義の変数:送信... .... いくつかのプロンプトを待ちます

上記はエラーではなく、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']の代わりに_get('str')を使用するだけです~

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

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