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送信が適しています。

【応用編②】URLのパラメータから値を取得する$_GETの使い方

こちらも実際の開発でよく使われる方法です。私はこの方法でやっとGETを使う理由を理解できた思い出があります。

こちらはURLにパラメータが表示されていれば、フォームで送信しなくても$_GETで受け取ることができるという方法です。

言葉だけではわかりずらいと思うので、サンプルプログラムを確認してみましょう。

日報システムを例にとります。

上記の日報システムで3/18に予定しているA社をクリックします。すると

“http://localhost/sfa_php/report_regis_edit.php?id=1”

というURLに画面遷移し、A社に関しての詳細を開くことができます。このときパラメータをフォームで送信している訳ではなく、URLからパラメータを取得しています。ここでは、id=1の部分です。

A社の部分には下記のようなaタグを付与しています。

<a href="report_regis_edit.php?id=1">A社</a>

これを$_GETで取得します。

$id=htmlspecialchars($_GET['id']);

あとは、$idからSQLを使って情報を抽出するような流れになります。

GETはフォーム送信するだけではなく、URLからパラメータを取得できるということを是非覚えていてください。

独学でツラくなった方へ

私は独学でプログラミングを学んで、実際に初めて稼げるようになるまで2年以上かかりました

当時は意地でも独学で学んでやる!と意気込んでいましたが、今思えばスクールに通うことで稼ぐまでのスピードはもう少し短縮できたのではと思っています。

効率よくプログラミングを身につけたい方は是非参考にしてみて下さい!

まとめ

今回説明した内容

✅GET送信の使い方

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

✅GET送信の応用

今回は以上になります。

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

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

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