if(isset($_POST['submit'])){
//code here
}
間違っている場合は訂正してください。ただし、ユーザーが「Enter」キーを使用してフォームを送信すると、上記のコードは機能しないと思います。
これは本当ですか?もしそうなら、送信ボタンを使用してエンターキーを押すユーザーの両方をカバーするために、これの代わりに使用できる別の if ステートメントはありますか?
if(isset($_POST['submit'])){
//code here
}
間違っている場合は訂正してください。ただし、ユーザーが「Enter」キーを使用してフォームを送信すると、上記のコードは機能しないと思います。
これは本当ですか?もしそうなら、送信ボタンを使用してエンターキーを押すユーザーの両方をカバーするために、これの代わりに使用できる別の if ステートメントはありますか?
フォームがサーバーに投稿されているかどうかを確認するには、次を使用します。
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// …
}
POSTに含まれるかどうかわからない場合submit
は、overkillメソッドを使用できます。<input>
これ<form>
に一意の名前でhiddenを作成し、POSTデータに含まれるかどうかを確認します。
<input type="hidden" name="some_name" value="OK" />
そしてPHPコードでは:
if (isset($_POST['some_name']) && $_POST['some_name'] == "OK") {
// ...
}
submit
がデフォルトの送信ボタンである場合、これは当てはまりません。
また、次のようなものもあります$_SERVER['REQUEST_METHOD']
—私があなたの意図を正しく理解していれば、POST
あなたがフォームを提出するときなどにそうなると思います。GET
他の答えについて詳しく説明します。そうである場合submit
はおそらく正しくなくinput type=submit
、Enterキーを押すとそのボタンがトリガーされます。type=img
またはの場合<button>
、Enterキーを使用すると動作が異なる場合があります(その_POST
値を設定しない場合があります)。
それがページの唯一の送信ボタンである場合、または複数ある場合はページの最初の送信ボタンである場合、送信は問題ないはずですが、これはおそらくありそうにありません。
別の方法は、非表示の入力を使用することです。
例えば
<input type="hidden" id="processed" name="processed" value="1" />
次に、送信スクリプトで
if(isset($_POST['processed'])){
//code here
}