PHPでサーバーとやり取りする場合、GETメソッド・POSTメソッドが必須となります。参考書でもGET・POSTは必ず出てきます。検索機能やお問い合わせフォームでもGETメソッド・POSTメソッドが使われています。
GETとPOSTとは?
皆さんはGoogleやyahooなどでURLを検索をすると、そのサイトが表示されますよね?
ブラウザで検索するとパソコンやスマホとサーバーでは、リクエストとレスポンスと呼ばれる処理が行われています。リクエストは要求、レスポンスは応答とも呼ばれます。
この記事を読んでいるあなた(クライアント)がGoogleで「test.com」と入力するとします。
このとき、クライアントはサーバーにリクエストしていることになります。
このリクエストに対してサーバーはURL(今回の場合、test.com)からデータを取得し、クライアントの画面に出力しています。このとき、サーバーはクライアントにレスポンスしていることになります。
GETとPOSTの違い
GETメソッドの特徴
- URLにパラメーターが付く
- URLの長さに制限があるため、画像データは送れない
- 個人情報を扱う場合使ってはいけない
Googleなどで検索したとき、?や&を含んだ長いURLが表示されると思います。GETメソッドを使った場合、パラメーターがURLの後ろに付きます。パラメーターは「パラメーター=データ」という形で付きます。複数のパラメーターがあった場合、&で区切られます。
GETメソッドには最大文字数が2,048 文字と決まっています。そのため画像データなど長いデータは送ることができません。テキストデータのみ送ることができます。
またURLにパラメーターが付くため、個人情報やクレジット情報などを扱う場合はGETメソッドは使いません。お問い合わせフォームなどを作る場合は次に紹介するPOSTメソッドを使います。
検索結果の取得やネット通販の商品個別ページでGETメソッドが使われます。
POSTメソッドの特徴
- URLにパラメーターが付かない
- 文字制限がない
POSTメソッドを使うとURLにパラメーターが付きません。なので、個人情報を送るときにPOSTメソッドを使います。
またPOSTメソッドには文字数制限がありません。長い文字列も送ることができます。
お問い合わせフォームやログイン機能でPOSTメソッドが使われます。
GETメソッドの使い方
<form action="test.php" method="GET">
<input type="text" name="test">
<input type="submit" value="送信">
</form>
action属性にはtest.phpを入れています。action属性には送信したいページ先を書きます。送信がクリックされると、action属性で指定したページにデータが送信される仕組みです。
method属性にはGETと入力しておきます。name属性にはtestを入力しています。
$_GET['test'];
$_GET[‘name属性’];と書くことによって、データを受け取ることができます。
POSTメソッドの使い方
<form action="test.php" method="POST">
<input type="text" name="test">
<input type="submit" value="送信">
</form>
GETメソッドと使い方はほとんど同じです。違う点と言えばmethod属性にPOSTを入力している点です。
$_POST['test'];
$_POST[‘name属性’];と書くことによって、データを受け取ることができます。
お問い合わせフォームを作ってみよう
GETメソッド・POSTメソッドを使ってお問い合わせフォームを作ってみましょう。
PHPでお問い合わせフォームを作る方法をこちらで紹介しています。

コメント