$_GETとは
$_GETとは、PHPの定義済み変数のひとつで、HTTP GETメソッドで送信され、URLパラメーターとして送られてきた値を取得する変数であり、連想配列で使用します。
つまり、HTMLのフォームからGETリクエストされた値を取得したい場合に$_GETを使用します。
$_POSTとは
$_POSTとは、PHPの定義済み変数のひとつで、HTTP POSTメソッドで送信された値を取得する変数であり、連想配列で使用します。
つまり、HTMLのフォームからPOSTリクエストされた値を取得したい場合に$_POSTを使用します。
GETとPOSTの違い
大きな違いは、サーバーへのリクエストパラメーターの送り方が違います。
※リクエストパラメータとは、PCからサーバーに送るデータのことです。
例) Webページに移動する際のページ情報
ログイン画面のユーザー情報
注文画面の個人情報
画面表示のために必要なパラメーター画面表示のために必要なパラメーターは「GET」
GET = データを取得する
例)表示したい商品や動画のID、ページ番号など
ユーザーが画面に入力して送信するパラメーターは「POST」
POST = データを送信する
例)ログインIDや個人情報など
サンプル
$_GET['key名']
-
<form>
タグを利用して HTTP GETメソッドを取得する。method="GET"とする。
<form>
タグ内のname属性をキー値に設定することで取得できる。
test.html
<form action="get.php" method="GET">
名前: <input type="text" name="name">
ユーザ番号: <input type="number" name="number">
<input type="submit" value="GET送信">
</form>
get.php
<?php
if (isset($_GET['name']) && isset($_GET['number'])) {
echo '名前とユーザー番号が入力されました。';
echo '名前 : '.$_GET['name'];''
echo 'ユーザー番号 : '.$_GET['number'];
}
-
<a>
タグを利用して HTTP GETメソッドを取得する。送信する値はurlencode()
関数でエンコードしてないといけない。urlに直接クエリ文字列を書き込ムことで取得できる。
test.html
// date, page をキー値に設定
<a href="get.php?date=<?php echo urlencode(time()) ?>&page=3">get.phpに遷移します</a>
get.php
<?php
echo '現在日付 : '.date("Y/m/d", $_GET['date']).'<br>';
echo 'ページ番号 : '.$_GET['page'];
$_POST['key名']
-
<form>
タグを利用して HTTP POSTメソッドを取得する。method="POST"とする。
<form>
タグ内のname属性をキー値に設定することでデータを送信できる。
test.html
<form action="post.php" method="POST">
ユーザー名 : <input type="text" name="username"><br>
ユーザー番号 : <input type="number" name="usernumber"><br>
メールアドレス : <input type="text" name="mail"><br>
住所 : <input type="text" name="adress"><br>
性別 : <input type="radio" name="gender" value="man">男
<input type="radio" name="gender" value="woman">女<br>
<input type="submit" value="送信">
</form>
post.php
echo 'ユーザー名 : '.$_POST['username'];
echo 'ユーザー番号 : '.$_POST['usernumber'];
echo 'メールアドレス : '.$_POST['mail'];
echo '住所 : '.$_POST['adress'];
if ($_POST['gender'] == 'man') {
$gender = '男';
} else {
$gender = '女';
}
echo '性別 : '. $gender;
参考
- PHP公式リファレンス $_GET
- PHP公式リファレンス $_POST
- PHP $_GET(ゲット変数)のすべて!【初心者向け基本】
- PHP $_POST(ポスト変数)のすべて!【初心者向け基本】
- GET/POSTの違い&実際の使い分け方
著者: E.R (株式会社ウィズツーワン)