「If isset $_POST」の動作を理解する
別のページにデータを送信するフォームを作成する場合、ユーザー入力を検証することが不可欠です。フォームデータが存在し、空ではないことを確認してください。ただし、多くの開発者は、フォーム フィールドが「isset()」を使用して設定されているかどうかを確認するときに問題に遭遇します。この記事では、空のフォームであっても "isset()" が常に true を返す理由を調査し、この課題に対処する解決策を提供します。
Web フォームの基本原則の 1 つは、すべての入力フィールドが自動的に設定されることです。値が含まれているかどうかに関係なく、フォームが送信されたとき。これは、フィールドが入力されているかどうかをチェックするときに、「isset()」のみに依存すると誤解を招く可能性があることを意味します。
フィールドが空かどうかを正確に判断するには、開発者はフィールドが空であるかどうかもチェックする必要があります。これを実現するには、「!empty()」演算子を使用できます。
質問で提供されているコード例の改良版を次に示します:
step2_check.php:
if (!empty($_POST["mail"])) { echo "Yes, mail is set"; } else { echo "No, mail is not set"; }
このように「!empty()」を使用することで、コードは設定されているが空のフィールドと実際には存在しないフィールドを正確に区別できるようになりました。これにより、検証ロジックが正しく動作し、意図した動作が提供されることが保証されます。
以上が'isset($_POST)' が空のフォームであっても常に True を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。