マナビヤ

人生が豊かになるブログ

manabiya

【第九回】知識ゼロから覚えるPHPプログラミング入門【POST送信編】

f:id:fab5:20191217203619j:plain

  • POST送信について知りたい。
  • データの送受信をするプログラムを作りたい。

この記事はこんな方に向けて書いています。

こんにちは fab5 です♪

前回はGET送信やif文を使った「クイズの作り方」について説明しましたね。

前回の記事はこちら↓

manabiya.fab5.work

しかし、GET送信には「データを大量に送れない」「URLにデータがむき出しでくっ付いているのでセキュリティ上好ましくない」という欠点があります。

そこで今回は送受信のもう1つのプログラムとしてPOST送信というものを説明していきたいと思います。

それでは今回も分かりやすく説明していきますので、しっかり勉強していきましょう👉

 

 

GET送信とPOST送信

前回までお話してきたGET送信というのはURLの後に「?a=~」というデータを書き加えるものでしたね。

しかし、この方法ではネットワーク上をデータがむき出しのまま流れていくのでセキュリティの面で心配があります。

そこで、このデータを付けたまま送らないで済む方法をPOST送信というものを使ってこれから説明していきます。

 

GET送信とPOST送信の違い

GET送信とPOST送信には、データが見えるか見えないか以外にもいくつかの違いがあります。

そこで、それぞれの特徴について順番に説明していきます。

 

GET送信
  • URLに送ったデータがむき出しで書き加えられているので外部から丸見えになってしまう。
  • 不正なデータを送信される恐れがある。
  • <form>でmethod属性を指定しなくていい、$_GET[ ]でデータを受け取れる。
  • 送信できるのは文字列などのテキストデータのみで、大量のデータを送信出来ない。

 

POST送信
  • URLにデータが書き加えられないので外部から見えにくくなる。
  • <form>では「method=”post”」と指定する必要があり、$_POST[ ]でデータを受け取る。
  • 文字列だけでなく画像データなどの全てのデータを送ることができる。
  • 大量のデータを送信することが出来る。

 

POST送信を使用する

それでは、実際にPOST送信とはどのように使用していくのか詳しく説明していきます。

ソースと実行画面に分けて説明していきますね。

 

ソース

POST送信のソースコードは下の図のようになります。

 

送る側のプログラム


f:id:fab5:20191222151939j:image

この青枠部分がGET送信と異なる部分ですね。

他に受け取りファイル名もuke_02.phpに変更しています。

 

受け取る側のプログラム


f:id:fab5:20191222152026j:image

この青枠部分がGET送信と異なります。

$_GET[ ]から$_POST[ ]に変更になっています。

 

実行画面

これらのプログラムを実行すると次のような画面になります。

まず、送る側の実行画面はこのようになります。


f:id:fab5:20191222152052j:image

POST送信のファイル名はokuri_02.htmlにしたので、このアドレスにアクセスしました。

表示画面はGET送信と変わりませんね。

 


f:id:fab5:20191222152119j:image

テキストボックスに「ネギの後味が口に残る」と書き込んで「送信」ボタンを押します。

これは昼ごはんにうどんを食べたときの感想ですね。

話は逸れましたが、このデータを受け取る側の実行画面はこうなります。

 


f:id:fab5:20191222152141j:image

送信データがWEBページに表示されるのはGET送信と変わりませんがURLの部分に何も追加されていないのが分かりますね。

 

GET送信とPOST送信の比較

まとめとして、GET送信とPOST送信の比較をしていこうと思います。

ソース、実行画面に分けて説明していきます。

 

ソースコード

まずソースコードの比較は下の図のようになります。


f:id:fab5:20191222152215j:image

 

青枠の部分が変更になっている場所ですね。

 

実行画面

次に実行画面の比較です。

まずGET送信の表示画面はこちらです。

 

f:id:fab5:20191218202357j:plain

このようにURLの後に送信データの「おならプー」が書き込まれています。

次にPOST送信の実行画面はこちらです。


f:id:fab5:20191222152141j:image

ほとんど変わりませんがURLの部分が違うのがお分かりになりますよね?

以上でPOST送信の説明を終わります。

 

今回のおさらい

さて、今回もおさらいの時間がやって来てしまいました😅

GET送信とPOST送信について「面接」をテーマに説明していきたいと思います。

ざっくりと説明していきますのでざっくりと覚えていってください。

 

f:id:fab5:20191222125655j:image

 

ガチャッ

 

「失礼します!」

 

はい。どうぞ!

 

GET送信 「こんにちは。GET送信と申します。本日はどうぞよろしくお願いします。」

 

どうぞお掛けになってください。

 

早速ですが、当社が欲しがっている人材として「誠実な人間」を求めているのですが、あなたは自分を誠実な人間だと思いますか?

 

GET送信 「はい!もちろんです!僕は嘘をついたことなんて一度もありません!」

 

そうですか…それでは、あなたは今この面接中どんなことを考えていますか?

 

GET送信 「はい!御社に入社したら身を粉にして貢献していきたい。ただそれだけを考えております!」

 

そうですか…

 

・・・

 

ちょっと確認したいのですが…「変なこと」は考えていないですよね?

 

GET送信 「変なこと?いえ、ちょっと何を言っているのか分かりませんが断じてそんなことは考えていません。」

 

本当にそうなんですね?

 

GET送信 「もちろんです。」

 

・・・

 

・・・


f:id:fab5:20191222125711j:image

 

はい。よく分かりました!それではまた結果に関してはまた後日郵送しますので少々お待ちくださいませ。

 

GET送信 「はい。分かりました。それでは失礼致します」

 

ガチャ(出ていく音)

 

・・・

 

・・・

 

コンコン!

 

はいどうぞ~!

 

POST送信 「失礼します!」


f:id:fab5:20191222125733j:image

 

・・・

 

・・・


f:id:fab5:20191222125746j:image

 

いや、そっちもやべぇよ…