Skip to main content

One post tagged with "Post"

View All Tags

PHP: フォーム情報の送信・受信 - POSTメソッド

· 3 min read
Yu Sasaki
Enterprise Security Manager / Advisor

HTMLフォームの情報をPOSTメソッドで送信し、送信されたデータをPHPスクリプトで取得しHTMLに埋め込み表示してみます。フォームの各フィールドははformタグ中でinput、select、textareaタグ等を用いて指定します。特にinputタグは下表の様にtype属性が色々あります。

inputタイプtype属性
テキスト入力type="text"
パスワード入力type="password"
ラジオボタンtype="radio"
チェックボックスtype="checkbox"
送信ボタンtype="submit"
ボタンtype="buttun"

フォームデータの送信先はformタグのaction属性で指定します。また、そのときのリクエストメソッドの指定はformタグのmethod属性で指定し、ここではPOSTを用いるのでmethod="post"と記述します。POSTはGETメソッドと異なり特に文字制限はありません。

ソースコード

form_test.html

HTMLフォーム情報の送信テスト

ID:
PASS:
性別:男性 女性
学年: 1年生 2年生 3年生 4年生
所有デジタル機器: PC Cell
コメント:

フォームデータは同ディレクトリに設置したshow_form_data.phpファイルに送信しています。

show_form_data.php

$value) { $have_dig[$key] = $value; } } $comment = htmlspecialchars($_POST["comment"], ENT_QUOTES); } else { echo "フォームページからアクセスしてください。"; exit(1); } ?> HTMLフォームのPOSTの受信テスト 送信されたデータは、
ID:
PASS:
性別:
学年:年生
所有デジタル機器:
コメント:

POSTリクエストでshow_form_data.phpへアクセスした場合はexit関数でスクリプトを終了します(→PHP: exit - Manual)。 htmlspecialchars関数で特殊文字をエスケープします(→PHP: htmlspecialchars - Manual)。今回はPOSTメソッドに関する練習用スクリプトなのでバリデーション処理は入れていませんが、実際はセキュリティ対策と合わせて色々フィルタするなり、リダイレクトで別ページに誘導するなりの処理が必要です。最近はこの辺の処理をフレームワークで上手くラップしてくれるのでかなり楽になっています。 あと、余談ですがforeach文では操作対象の配列のコピーを作成して、コピーに対して処理していきます。

実行結果

form_test.html

HTMLフォームへの入力

show_form_data.php

POSTされたデータの出力