PHPのPOSTのやり方を解説!|POSTについて理解を深めてPHPを使いこなそう

公開日時:   更新日時:
PHPのPOSTのやり方を解説!|POSTについて理解を深めてPHPを使いこなそう
基本情報技術者試験の試験対策はこちら>>

SE
PHPのPOSTのやり方を教えてください。

PM
PHPのPOSTのやり方や問題点などを紹介します。

PHPのPOSTとは?


この記事ではPHPによるPOSTの送受信について解説します。ただしその前に、POSTとは何なのかについて知っておくべきでしょう。

POSTとはHTTP(Hypertext Transfer Protocol)の送信メソッドの1つです。インターネットの通信にはHTTPというプロトコル(通信の決まり事)が利用されていますが、POSTとはそのプロトコルの中の、データを送受信するための仕様の1つになります。

まずGETメソッドから学ぼう

HTTPではPOSTメソッドと対になる送信方法として、GETメソッドがあります。比較的わかりやすいGETから学ぶと、POSTの方の理解も早いでしょう。

GETやPOSTによる送信はHTMLのフォームを使うと簡単にできます。サーバ上のtest.phpというファイルのbodyタグ内に、以下のタグがあるとします。

GETメソッドでフォームからパラメータを送信

上のフォームタグを実行すると、テキストボックスと2つのラジオボタン、送信ボタンが表示されます。これでテキストと性別の情報をGETメソッドでサーバに送信できます。それではテキストボックスに「abcde」入力して送信ボタンを押してみましょう。

するとURLが以下のように変化します。これがGETメソッドでパラメータが送信された状態になります。

GETメソッドによるパラメータの送信

インターネットをしていると今回のように、URLの終りに?や&がついた状態を見かけることがよくあります。これがGETメソッドでパラメータが送信された状態なのです。URLにパラメータが付加されているのでわかりやすいでしょう。

それでは次にPHPで、GETメソッドで送信されたパラメータを受信するコードを記述しましょう。

PHPでGETメソッドの値を受信

以下のPHPのコードを同じtest.phpに記述してください。GETメソッドの値は、$_GET[“属性名”]で取得できます。以下のサンプルはそれをechoで表示しています。

これでGETで送信したパラメータを受信できることが確認できました。

パラメータがある時だけ表示するようにする

上のPHPサンプルは、GETでパラメータが送信されてない時でもPHPで取得して表示しようとします。その結果、BRタグの改行が表示されてしまいます。そこで以下のように直すと、パラメータを受信していない時は表示しないようにできます。

isset(変数)は変数の中身があればtrue、なければfalseになるので、if文で判定すればパラメータがある時だけ表示できるということです。

GETメソッドの問題点

GETについての基本的な使い方は以上です。GETはパラメータがURLに付加されているのでわかりやすいですが、それがデメリットでもあります。パスワードのように表に出てはならないパラメータも、URLに付加されるので分かってしまいます。

またパラメータが多いとURLがやたらと長くなってしまいます。そういった理由から、パラメータを表に出さずに送信できる方法が必要になります。そこで役立つのが、URLにパラメータを付加しないPOSTメソッドなのです。

POSTによるパラメータの受信

POSTを使う方法は、ここまでを理解していれば簡単です。ここまでのサンプルのGETをPOSTにするだけで、POSTで送受信できます。

PHP

HTML

これでURLにパラメータを付加せずに、送受信できます。

POSTを使うだけでは安全ではない

なおPOSTメソッドを使えば安全になるからパスワードを送信しても大丈夫、と思うのは間違いです。「http://~」でアクセスする場合、パラメータはそのままのデータで送信されます。これが傍受された場合、中身を読み取られてしまいます。

それを解消するのがHTTPSです。「https://~」でアクセスするとデータが暗号化されるので、傍受されても解析が困難になるため安全になります。そういった理由から、今はHTTPを避けてHTTPSを利用するのが一般的になっています。

なおGoogleは検索順位でHTTPよりもHTTPSでアクセスするサイトを優遇すると表明しています。

POSTで配列を送信する

POSTメソッドで配列を送信して、PHPで受信することも可能です。

PHP

HTML

実行すると以下のように、チェックを入れた個所が配列として渡されて表示されます。

PHPの最大送信サイズを確認する

PHPで送受信できるサイズは以下で確認できます。

初期設定では8Mとなっていることが多いでしょう。なおこれを変更する場合はini_setで設定するのではなく、サーバにあるphp.iniを修正する必要があります。動作しているPHPのプログラム内で動的に変えることはできないということです。

SE
PHPのPOSTのやり方がわかりました。

PM
PHPのPOSTの理解を深めて、実際にコードを書いてみましょう。

PHPのPOSTを使いこなそう

PHPのPOSTについて解説しましたが、ご理解頂けましたでしょうか。PHPではGETと共に基本となる機能なので、まずはしっかりとマスターしましょう。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags