#navi(../)
* PHPを用いたGETとPOSTの違いとサンプル [#yd1cdda4]
PHP, Apacheを利用してGETとPOSTの違いを以下に説明します。~
また説明に使用したサンプルコードも記します。

#contents
#htmlinsertpcsp(web-top.html,web-sp.html)


* 前提条件 [#x1c8c6a4]
本サンプルコードを動作させるには、OS上にApacheとPHPが動作する環境を構築する必要があります。~
本資料では、OSはUbuntu(Linux)を使用し以下に記す動作環境にて動作確認を行いました。

* 動作確認環境 [#ye550b69]
-OS
 $ lsb_release -d
 Description:    Ubuntu 12.04.4 LTS
-Apache
 $ apache2 -v
 Server version: Apache/2.2.22 (Ubuntu)
 Server built:   Jul 12 2013 13:38:21
-PHP
$ php -v
 PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:19:50)
 Copyright (c) 1997-2012 The PHP Group
 Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

* 関連資料 [#p28565a4]
WEB DB環境を構築するためのLAMP, LAPP環境の記事です。~
-[[WindowsでXAMPPを用いてLAMP環境を構築>http://web.just4fun.biz/LAMP/Windows%E3%81%A7XAMPP%E3%82%92%E7%94%A8%E3%81%84%E3%81%A6LAMP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]]
-[[Ubuntu上にLAMP環境の構築>http://linux.just4fun.biz/Ubuntu/LAMP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]]
-[[Ubuntu上にLAPP環境の構築>http://linux.just4fun.biz/Ubuntu/LAPP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]]
-[[CentOSでLAMP環境を構築>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7LAMP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]]
-[[CentOSでLAPP環境を構築>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7LAPP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]]

* GETとPOSTのHTMLとPHPスクリプト [#hf5c72fd]
GETとPOSTのHTMLとPHPスクリプトを以下に記します。~
違いはform methodとactionの部分になります。

* GETメソッド関連 [#v40cab20]
ダウンロード
#ref(get.zip)


** GETのHTMLソース [#p04ea4de]
 <html>
 <head>
   <title>GET HTML</title>
 </head>
 <body>
   <form method="GET" action="get.php">
     <input type="text" name="data">
     <input type="submit" value="Submit!">
   </form>
 </body>
 </html>

** GETのPHPスクリプト [#k8b72ed0]
 <?php
   print($_GET['data']);
 ?>

** GETメソッドの説明 [#i00bbbfd]
+上記HTMLとPHPスクリプトをブラウザからアクセスできる同一のディレクトリに配置してください。
+ブラウザを起動し以下のようにアクセスします。~
当方はApacheのドキュメントルートに配置したので以下のようになります。~
 http://サーバー名(またはIP)/get.html
+以下の画面が表示されるので文字を入力しSubmit!ボタンを押します。
#ref(01.gif)
#br
+ Submit!ボタンを押すと、HTMLのactionに記述されているget.phpに入力された情報が送信されます。~
+ 以下のスクリーンショットを見るとアドレスの部分が以下のようになります。
 http://サーバー名(またはIP)/get.php?data=SAKURA
dataは input type="text" name="data" のnameの部分のdataになります。~
したがってdata=SAKURAはテキストボックスに入力された テキストボックス名=値 という感じでアドレスバーに表示されていることが確認できます。~
また?ですが、区切り文字になります。~
複数の情報をGETメソッドで送信する場合は&で区切られます。

#ref(02.gif)

* POSTメソッド関連 [#kf54f2c3]
ダウンロード
#ref(post.zip)

** POSTのHTMLソース [#p2558379]
 <html>
 <head>
   <title>POST HTML</title>
 </head>
 <body>
   <form method="POST" action="post.php">
     <input type="text" name="data">
     <input type="submit" value="Submit!">
   </form>
 </body>
 </html>

** POSTのPHPスクリプト [#pa108433]
 <?php
   print($_POST['data']);
 ?>

** POSTメソッドの説明 [#x393c076]
+上記HTMLとPHPスクリプトをブラウザからアクセスできる同一のディレクトリに配置してください。
+ブラウザを起動し以下のようにアクセスします。~
当方はApacheのドキュメントルートに配置したので以下のようになります。~
 http://サーバー名(またはIP)/post.html
+以下の画面が表示されるので文字を入力しSubmit!ボタンを押します。
#ref(03.gif)
#br
+ Submit!ボタンを押すと、HTMLのactionに記述されているpost.phpに入力された情報が送信されます。~
+ GETとは異なりアドレスバーの部分には何も表示されません。~
つまり送信する情報はURLに付加するのではなく、直接サーバーに送信されます。
#ref(04.gif)

以上、GETメソッドとPOSTメソッドの動作説明でした。

#htmlinsertpcsp(web-btm.html,web-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS