⊗ppPmFmOFH 299 of 447 menu

PHPでの単一ファイルフォーム処理

前回のレッスンでは、フォームはあるページに配置され、 別のページに送信されました。 実際には、これは必須ではありません。 属性actionを空のままにするか、 完全に削除すると、フォームは同じページに送信されます。

動作方法:初めてページにアクセスしたとき、 フォームにデータを入力してボタンをクリックします。 その後、ページが更新され、フォームデータと共に コードが再度実行されます。

例を見てみましょう。1つのファイルに フォームとその処理があるとします:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

ページに初めてアクセスしたとき、関数var_dump は空の配列を出力します。フォーム送信後、 フォームデータを出力します。 つまり、最初は$_GETが空で、 2回目はフォームデータを含みます。

これは問題を引き起こす可能性があります。 例えば、フォームに数値を入力し、 それらの合計を画面に表示したいとします:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

この場合、初めてページにアクセスすると、 $_GET配列が空なのにその要素に アクセスしているため、PHPのエラーが表示されます。

ここで、ブラウザにエラーが表示されない場合もあることを 言及しておきます。その場合は、 PHPのエラー出力が有効になっていることを確認し、 アドレスバーにフォームデータがない状態で 初めてページにアクセスしていることを確認してください。

この問題を修正しましょう。そのためには、 フォームが送信されたかどうかを確認する条件を追加します。

例えば、$_GETが空でないかどうかを 確認できます。$_GETが空でない場合、 フォームが送信されたので、合計を実行できます。 それ以外の場合は、まだページへの初回アクセスであり、 合計は実行されません。修正されたコードは次のとおりです:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

ユーザーに姓、名、父称(ミドルネーム)を尋ねてください。 フォーム送信後、入力されたデータを画面に表示してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否