GETとPOSTについてこんなツイートをしましたが、もう少し詳しく説明するために記事を作成しました。
PHPはじめたばかりの方は、GETとPOSTの違いがあまりわからないという方多そう。
— Tomoya (@div_tomo) August 17, 2023
簡単に言うと
URLに表示されるかされないか
の違い
GET=URLに表示
POST=URLに表示されない
手順
ファイルの作成
まずは [ formフォルダ ] を作成してその中に [ input.phpファイル ] を作成してください。
form
|--> input.php
HTMLを書く
ファイルが作成できたら [ input.php ] にHTMLを書いていきます。
input.php
<!DOCTYPE html>
<meta charset="utf-8">
<head></head>
<body>
<form method="GET" action="input.php">
氏名
<input type="text" name="name">
<br>
言語
<input type="checkbox" name="language[]" value="PHP">PHP
<input type="checkbox" name="language[]" value="Java">Java
<input type="checkbox" name="language[]" value="Python">Python
<input type="submit" value="送信">
</form>
</body>
</html>
<form>の解説
フォームを作成する時は、<form></form>
タグで囲ってあげる必要があります。
method=””
にはGET
かPOST
の2種類どちらかが入ります。
action=””
の中身は処理をした後の遷移画面のファイルを書いてあげます。
例えば
action=”input.php”
だとしたら送信ボタンを押下した後[ input.phpファイル ] に遷移します。
action=”../index.php”
だとしたら送信ボタンを押下した後 [ index.phpファイル ] に遷移します。
氏名<input>の解説
type=”text”
typeの中にtextを入れてあげると文字が入力できます。
name=”name”
inputには名前を付ける事ができて今回は氏名なのでnameにしています。使い方は後程
言語<input>の解説
type="checkbox"
としてあげて複数並べてあげるとチェックボックスを作成できます。
name="language[]"
[]をつけてあげることで複数のチェックボックスを作成できます。
value=""
の中に渡したい値を入れてあげます。
<input 送信>の解説
type=”submit”
としてあげると送信ボタンを作る事ができます。
value=”送信”
valueの中に書いた文字がボタンの中に表示される文字です。
ブラウザの確認
一旦HTMLの確認をしたいのでブラウザを開いて表示を確認してみてください。
以下のように表示されていればOKです。
実際に上の氏名と言語を埋めて送信してみてください。
何も動作はしないのですが、URLをよく見ると
[?name=test&language%5B%5D=Java&language%5B%5D=Python]
のように表示されていると思います。
これはformに入力した値がURLに出てくるのがGETの特徴です。
URLにでてこないのがPOSTの特徴です。
ちなみに[?]の後に書かれている値をクエリーなどと呼ぶこともあります。
methodの中身がどうなっているか
method="GET" の中身がどうなっているかを確認していく処理を記述していきます。
input.php
<?php
if(!empty($_GET)){
echo '<pre>';
var_dump($_GET);
echo '</pre>';
}
?>
<!DOCTYPE html>
・・・以下略
<!DOCTYPE html>
の上にphpを書いていきます。
var_dump($_GET);
GET通信を見るには $__GET
としてあげれば見ることができます。
ちなみに $__
で書かれているものはスーパーグローバル変数と言います。phpの場合は9種類あります。スーパーグローバル変数は連想配列になっているので覚えておきましょう。
echo '<pre>'
は var_dump()
のままだと見ずらいのでpreで縦に並べています。
if(!empty($_GET)){
if文を定義しないとエラーがでるのでif文を付けてあげています。
!empty
は空では無かったらという意味
ブラウザの確認
ブラウザの確認をしましょう。以下のように表示されていれば問題ないです!