以下の判定があります if ($_Get ['search']) Value がある場合は、クエリ ボタンがクリックされたことと、どのような操作が実行されたかを示します。"/> 以下の判定があります if ($_Get ['search']) Value がある場合は、クエリ ボタンがクリックされたことと、どのような操作が実行されたかを示します。">

ホームページ >バックエンド開発 >PHPチュートリアル >フォーム $_post[] に関する質問

フォーム $_post[] に関する質問

WBOY
WBOYオリジナル
2016-06-13 12:10:35935ブラウズ

フォームの問題 $_post[]
フォーム アクションは、フォーム アクションが配置されているページを指しています
送信ボタン

以下のようなA判定 if($_Get['search'])
値があればクエリボタンがクリックされ、どのような操作が行われるかを意味します
値が無い場合のみこのページの静的部分が表示されます。

5.3は動作します
PHP5.5を使用したらWebページが表示できなくなりました

解決策を教えてください。どうしたの?すべてのコードを書き直す必要がありますか?
-----解決策のアイデア----------------------
$ _GET[検索]
引用符なし。 PHP はまず検索定数を探します。見つからない場合は、エラーが報告されます。

コードを変更したくない場合は、最初の行に error_reporting(E_ALL & ~E_NOTICE); を追加して、エラー通知レポートをブロックします。
------解決策のアイデア----------------------
次の場合、エラーのデバッグを有効にできます。 Web ページを表示できません。何か問題があるはずです。
------解決策----------------------
引用符を追加するのが標準的な書き方です。
なぜ基準に従わないのか。 。
------解決策のアイデア----------------------
このエラー メッセージの理由は PHP です引用符のないキー名が定数として取得され、見つからない場合は NOTICE がスローされ、「定数名」に基づいて文字列が生成され、この文字列がキー名として使用されます。続行~

エラー表示をブロックするには error_reporting(E_ALL & ~E_NOTICE); を設定できます。ただし、引用符を追加すると、定数を取得するために何度も定数を文字に変換する必要がなくなり、効率が向上します。
------解決策----------------------
これはphpのバージョンとは関係ありませんただし、PHP 環境設定に関連します
もちろん、PHP のバージョンがアップグレードされると、適用される制約もアップグレードされます

if($_Get['search']) は E_NOTICE を生成する可能性がありますレベルのエラー メッセージ
エラー表示をオンにしない場合、またはエラー メッセージをログにリダイレクトしない場合
エラー メッセージから逃れることができなくなり、HTTP 500 ステータス (サーバー拒否応答) が発生します

E_NOTICE レベルのエラー チェックがブロックされているため、この問題は回避できます
しかし、結局のところ隠れた危険性は依然として存在しており、プログラムは堅牢ではありません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。