PHP

【PHPの基礎】GET送信の方法をマスターしよう!

今回解決できる内容!

✔️GET送信とは

✔️GET送信の方法

POST送信同様に実際の開発でも大変よく使われる方法なので必ずマスターしましょう!

独学がつらくなった方は下記をご覧ください!

>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!

【基礎編】GET送信とは

GET送信とは、POST送信と同様にHTTPで作られた入力データをサーバに送信する方法です。

簡単に言うと、次のページへデータを渡すことができます。

POST送信との違いはGET送信はデータをURLの末尾に「?」を付けて、データを送信します。

例えばローカル環境でreceive.phpというファイルにある値をGET送信すると下記のようなURLになります。

http://localhost/receive.php?パラメータ名=値

パラメータ名とは送信するデータに付けた名前で、値は実際に送信されたデータのことです

【基礎編】GET送信の使い方

それではもう少し実例に近い形で確認してみましょう!

値を送信する際はPOST送信と同様に下記のように記載します。

<form action="送信先のページ" method="GET">
<input type="text" name="user_name">
<input type="submit" value="送信"> 
</form>

“送信先のページ”のところに、実際に値を送り、その内容を表示する先のファイルを指定します。そして今回例だとテキストボックスを使用しているので、そこに入力された値に”user_name”という名前を付けます。送信ボタンが押されたら送信先のページに画面遷移し、入力した値が送られるという流れになります。

今回の例だと、”送信先のページ”と”user_name”の2箇所が作成者によって自由に変更できます。

【基礎編】GET送信の受け取り方法

GETで送られたデータの取得方法は下記の通りです。

先ほどの送信データを受け取るように記載します。

$user_name=htmlspecialchars($_GET["user_name"]);

まず受け取ったデータの格納先として変数を作ります。(ここでは$user_name)

GETデータを取得するには、$_GET変数を使用します。$_GETは連想配列の為、キーとしてinputのname属性の値を入力します。(ここではuser_name)

セキュリティ対策として、htmlspecialchars関数によってエスケープ処理を施しています。

次は実際にプログラムで確認してみましょう!

【実践編】GET送信を使ってみよう!

次はサンプルプログラムでGET送信の活用方法を確認してみましょう!

GET送信するファイルをsend.php、GET送信されたデータを受け取るファイルをreceive.phpとして作成します。

<!DOCTYPE html>
<html lang="ja">
 <head>
    <meta charset="UTF-8">
    <body>
        <h2>テスト</h2>
        <form action='receive.php' method="GET">
            <label>名前</label>
            <input type="text" name="user_name">
            <br>
            <label>趣味</label>
            <input type="text" name="hobby">
            <input type="submit" value="送信"> 
        </form>
    </body>
 </head>
</html>
<?php
if(isset($_GET['user_name'])){
    $user_name=htmlspecialchars($_GET['user_name']);
}else{
    echo'名前を入力してください';
}

if(isset($_GET['hobby'])){
    $hobby=htmlspecialchars($_GET['hobby']);
}else{
    echo'趣味をを入力してください';
}


echo $user_name.'の趣味は'.$hobby.'です';

?>

send.phpには例として下記の通りに入力してみます。

送信ボタンを押すと下記のような結果になります。

URLが”http://localhost/receive.php?user_name=サラプロ&hobby=テニス”となっております。GET送信によって、URLの末尾にパラメータが渡されているのがわかると思います。

パラメータが複数ある場合は「&」で繋げられます。

GET送信はURLの後ろにデータを付加するため、URLの長さの上限値に達するとデータを送信することができなくなります。

また、今回使用されてるisset関数に関しては下記の記事を参考にしてください!

【PHPの基礎】isset関数をマスターしよう! empty関数との違いも解説 今回解決できる内容! ✔️変数に値が入っているか確認したい ✔️...

【応用編】POST送信とGET送信の使い分け

私が初学者の時にGET送信に関して疑問をもったことがあります。それはPOST送信とGET送信の使い分けです。

基本的に「GET」と「POST」の2つの違いは「値が見えるか見えないか」です。GET送信は、URLの末尾が変更され、第3者でもどんな値を送信しているのかを見ることができます。

2つの使い分けは、URLのブックマークできるようにするかどうかが基本です。Googleなどの検索エンジンは、検索キーワードにGET送信が使われている為、検索したキーワードをブックマークすることが可能です。一方で、ユーザIDやパスワードなど人に見られては困る情報を送信するにはPOST送信が適しています。

独学でツラくなった方へ

まとめ

今回説明した内容

✅GET送信の使い方

✅GET送信とPOST送信の使い分け

✅GET送信の応用

今回は以上になります。

GET送信は実際の開発では必ず使う内容なので是非マスターしましょう!

POST送信に関しては下記の記事を参考にして下さい!

POST送信
【PHPの基礎】POST送信の方法をマスターしよう 今回解決できる内容! ✔️POST送信とは ✔️POST送信の方法 ...