「If isset $_POST」問題を理解する
HTML フォームと PHP を使用する場合、フォーム入力が設定されているかどうかを確認するのはisset() 関数を使用して実行されます。ただし、特定のシナリオでは、フォーム フィールドが空の場合でも肯定的な結果が返される場合があります。これにより、コード内で予期しない動作が発生する可能性があります。
問題
この例では、「mail」という名前のフォーム入力が、メールの有無に関係なく、常に設定されます。データが含まれています。これは、ほとんどのフォーム入力は、空白のままであっても、フォームの送信時に自動的に設定されるためです。
解決策
この問題に対処するには、次のことを行う必要があります。入力の存在とその空の両方をチェックします。これは、!empty() 関数を使用して実現できます。
修正されたコード:
<?php if (!empty($_POST["mail"])) { echo "Yes, mail is set"; } else { echo "No, mail is not set"; } ?>
このコードでは、!empty() 関数は、$_POST["mail" ] 変数が空です。空でない場合は、入力フィールドにデータが含まれており、設定されていることを意味します。それ以外の場合は false を返し、入力が設定されていないことを示します。
以上が空のフォーム入力に対して `isset($_POST)` が True を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。