・formからデータを受け取る方法を知りたい。
・GETやPOSTの意味や違いは?
PHPでは、formタグのaction属性を指定することで、データの送信先を設定することができますが、使い方を知らない人も多いでしょう。
そこでこの記事では、PHPでformのaction属性を指定し、データを受け取る方法について解説します。
この記事を読めば、formのaction属性を理解し、formで入力したデータを受け取る処理ができるようになるでしょう。
PHPでformの処理を学習しているけど、action属性の指定方法がわからない、GETやPOSTの違いが理解できない人は、ぜひ最後までご覧ください。
目次 [非表示]

formのaction属性の仕組み
HTMLでフォームを作成する際に使われるformタグですが、action属性というものを指定することができます。
formのaction属性とは、データを送信する送信先を指定するための属性です。
例えば、お問い合わせフォームで項目を入力し、データを確認画面に引き渡さなければならない時があります。
その際に、action属性を使って送信先を確認画面のURLに指定することで、データを引き渡すことができます。
「フォームを入力するファイル」と、「データを送信する先のファイル」が同じフォルダ内にある場合、上記のようにファイル名を指定することで、データが送信されます。
また、その送信されたデータはGETやPOSTを使って受け取ることが可能です。
このGETとPOSTについて詳しく知らない人もいると思うので、次の項目で解説していきます。
GETとPOSTについて
GETとPOSTとは、formからデータを送受信するときに使うリクエスト方法です。
- ・GET:データがURLで引き渡される
- ・POST:データがURLで引き渡されない
GETとPOSTには上記のような違いがあり、データを送信する際にURLで引き渡すのがGETで、そうでないのがPOSTになります。
実際にどのように送信されるのか、コードに書いて見てみましょう。
PHPファイル「index.php」を作成してHTMLを書いていきます。
formタグのmethod属性に「get」か「post」を指定することで送信方法を設定できます。
まずは、上記のコードのようにmethod属性を「get」に指定します。
※データの送信先は同じファイル内にするために、action属性は現在のファイル名「index.php」と指定しています。
入力スペースに文字を入力して送信ボタンを押してみましょう。
すると結果は次のようになります。
送信ボタンを押すと、URLの部分に入力したデータが表示されました。
これは、URLによってデータが引き渡されたからです。
では、formのmethod属性を「post」に書き換えてみましょう。
先ほどと同じように、入力スペースに文字を入力して、送信ボタンを押します。
すると結果は次のようになります。
送信ボタンを押しましたが、URLの部分には何も表示されていません。
この結果から、postはURLによって引き渡されていないのがわかります。
※しかし、データはきちんと送信されています。
このように、GETとPOSTはデータをURLで引き渡すかどうか、という部分に違いがあるのです。
ここでは、データを送信しただけなので、次の項目でデータを受け取ってみましょう。


formのデータを受け取ってみよう
GETとPOSTについて理解できたので、formから送信されたデータを受け取ってみます。
ちなみに、お問い合わせフォームやログイン機能などでは、POSTを使われることがほとんどなので、今回はPOSTを使って解説していきます。
formからPOSTでデータを受け取る
では、実際のコードで書き方を見ていきましょう。
まずは、HTMLで入力フォームを作成します。
■index.php
まず、formのaction属性ですが、初めは送信先を同じファイル内にしておくために「index.php」と指定しておきます。
※method属性は「post」を指定しておきましょう。
そして、入力する部分ですが、inputタグやtextareaを用いて「名前」「メールアドレス」「メッセージ」を作成します。
name属性はそれぞれ「name」「email」「message」としておきましょう。(name属性はデータを受け取る際に必要となります)
続いて、formから送信したデータを受け取るための処理を記述しましょう。
formタグの下に、PHPのコードを書いていきます。
POSTによって送信したデータを受け取るには、$_POST[‘name属性の名前’]を使ってデータを受け取ることができます。
今回の例であれば、inputやtextareaのname属性を「name」「email」「message」としていたので、$_POST[‘name’]、$_POST[‘email’]、$_POST[‘message’]と指定することで、データを受け取ります。
それぞれ受け取ったデータをechoで出力してみましょう。
入力欄に文字を打ち込み、送信ボタンを押すと、上記のようにデータが表示されました。
この結果から、データをきちんと受け取ることができているのがわかります。
action属性でデータの送信先を別のファイルに指定する
POSTによってデータを受け取る方法がわかりました。
しかし、先ほどはデータの受け渡しが同じファイル内でしたね。
なので今度は、action属性に別ファイルを指定し、データの送信先を変更してみましょう。
まず、先ほどの入力画面で入力したデータを受け取るための確認画面を作成します。
index.phpと同じディレクトリに新しく「contact.php」という名前のファイルを作成しましょう。
■contact.php
ファイルの中身は上記のように、テーブル(表)を作成してデータを表形式に表示します。
データを受け取るための$_POST[]の書き方は先ほどと同様で、それぞれのname属性を指定しておきましょう。
tdタグの中にPHPコードでデータを受け取ることで、表のセルに結果を表示することができます。
そして、index.phpのformのaction属性は、「contact.php」に書き換えておきましょう。
■index.php
これで、入力欄に文字を入力して、送信ボタンを押すと、確認画面に遷移します。
入力したデータが表になって表示されましたね。
このように、action属性でデータの送信先を指定することで、別ページにデータを引き渡すことができます。
そして、データの送受信がPOSTの場合、$_POST[‘name属性の名前’]と指定することで、データを受け取ることが可能です。
※GETの場合も同じです。
これで、formのaction属性の使い方やGETとPOSTについては理解できましたね。
実際にコードに書きながら、使い方を覚えていきましょう。
まとめ
今回は、PHPでformのaction属性を指定し、データを受け取る方法について解説しました。
formのaction属性はデータの送信先を指定するための属性です。
データを受け取るためにGETやPOSTを使えば、action属性で指定された送信先でデータを受け取ることができます。
お問い合わせフォームやログイン機能などのような個人情報を扱う際は、データをURLで引き渡さないPOSTを使うのが望ましいでしょう。
この記事がPHPの学習に役立つと幸いです。