.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. PHP
  5. PHPのPOSTのやり方を解説!|POSTについて理解を深めてPHPを使いこなそう

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

  • PHP
  • プログラミング言語
公開日時:   更新日時:
PHPのPOSTのやり方を解説!|POSTについて理解を深めてPHPを使いこなそう
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    PHPのPOSTのやり方を教えてください。

    プロジェクト
    マネージャー
    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のプログラム内で動的に変えることはできないということです。

    システム
    エンジニア
    PHPのPOSTのやり方がわかりました。

    プロジェクト
    マネージャー
    PHPのPOSTの理解を深めて、実際にコードを書いてみましょう。

    PHPのPOSTを使いこなそう

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

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job