2011-08-16 11 views
0

HTML:フォームが送信されたかどうかはどのように確認されますか?

<form name="myform" action="process.php" method="POST"> 
    <input type="hidden" name="check_submit" value="1" /> 
    <!-- ........ --> 
</form> 

PHP:

if (array_key_exists('check_submit', $_POST)) {....} 

なぜarray_key_exists('check_submit', $_POST)フォームが送信されたかどうかを確認することができますか?

これまではisset($_POST['...'])が使用されていましたが、これはありません。

もし私がこのようなことをしなければ、array_key_exists( 'check_submit'、$ _POST)の決定が起こるかもしれません。

+1

あるべきではない何らかの理由はありますか? –

+0

'isset($ _ POST ['...'])' ...いいえアンダースコア –

答えて

1

check_submitは内のフィールドですフォームを送信すると、そのフィールドはPOSTデータで利用できます。

PHPは、$_POSTスーパーグローバル配列に入っているPOST-メソッド形式のデータを入れ、コードはcheck_submitフィールドをその配列で見つけることができるかどうかを決定します。

実際、isset($_POST['check_submit'])と非常によく似ています。そのような要素が$_POSTに存在するかどうかをチェックします。わずかに異なるアプローチをとっているだけです。


フォームを送信しなかった場合、フォームデータはありません。あなたのページは、フォーム(POST経由で)提出の結果として呼び出された天気を確認するには

+0

@runeveryday:フォームを提出すると、フォームを提出できますか?ハァッ? –

+0

申し訳ありませんが、私はすべての入力テキストボックスを入力しない場合を意味します。私はフォームを提出すると、型付きのデータはデータベースに挿入される可能性がありますか? – runeveryday

+1

@runeveryday:あなたのことを理解できない。フォームを送信すると、入力したデータはすべてWebサーバーに送信され、送信先URIで実行している可能性のあるPHPスクリプトが送信されます。そのPHPスクリプトは、受け取ったデータが好きなものであれば何でもできます。 –

0

は、あなたが何かを意味するものではありません。:

 
if(!empty($_POST) && isset($_POST['check_submit']) && $_POST['check_submit'] == '1'){ 
    // do something 
} 
+0

最後の2つの条件は集約でき、最初は無意味です。 –

+0

$ _POSTは、CLIインタプリタであっても常に存在するように見えます。 –

+0

真実...私の悪い...私の答えを少し編集したので、より意味があります。私はちょうどポスターにいくつかのオプションを指摘していた。 –

0

var_dump($_POST)を行いますが、あなたはcheck_submitキーを持っています$ _POSTを連想配列を、表示され、値= 1

3

あなたはこのようなものを使用する必要がありますあなたがちょうど持っている隠されたフォーム要素を使うべきではありません

if ($_SERVER['REQUEST_METHOD'] == 'POST')

をフォームが提出されたかどうかチェックする値。リクエストメソッドを使用すると、フォームID /名前/値が変更されても、問題なく処理できます。

関連する問題