0
if(isset($_POST['submit'])){
//code here
}

間違っている場合は訂正してください。ただし、ユーザーが「Enter」キーを使用してフォームを送信すると、上記のコードは機能しないと思います。

これは本当ですか?もしそうなら、送信ボタンを使用してエンターキーを押すユーザーの両方をカバーするために、これの代わりに使用できる別の if ステートメントはありますか?

4

5 に答える 5

7

フォームがサーバーに投稿されているかどうかを確認するには、次を使用します。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // …
}
于 2012-10-05T16:21:24.373 に答える
4

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") {
    // ...
}
于 2012-10-05T16:20:31.580 に答える
3

submitがデフォルトの送信ボタンである場合、これは当てはまりません。

また、次のようなものもあります$_SERVER['REQUEST_METHOD']—私があなたの意図を正しく理解していれば、POSTあなたがフォームを提出するときなどにそうなると思います。GET

于 2012-10-05T16:20:17.150 に答える
1

他の答えについて詳しく説明します。そうである場合submitはおそらく正しくなくinput type=submit、Enterキーを押すとそのボタンがトリガーされます。type=imgまたはの場合<button>、Enterキーを使用すると動作が異なる場合があります(その_POST値を設定しない場合があります)。

于 2012-10-05T16:22:13.637 に答える
0

それがページの唯一の送信ボタンである場合、または複数ある場合はページの最初の送信ボタンである場合、送信は問題ないはずですが、これはおそらくありそうにありません。

別の方法は、非表示の入力を使用することです。

例えば

<input type="hidden" id="processed" name="processed" value="1" />

次に、送信スクリプトで

if(isset($_POST['processed'])){
    //code here
}
于 2012-10-05T16:22:32.753 に答える