PHP - GETとPOST:ウェブ開発におけるデータ伝送の理解

こんにちは、ウェブ開発の志望者诸位!今日は、PHPおよびウェブ開発における最も基本的な概念の一つであるGETとPOSTメソッドについて深く掘り下げます。あなたの近所の親切なコンピュータサイエンスの先生として、この旅をガイドするのが楽しみです。お気に入りの飲み物を片手に、リラックスして、始めましょう!

PHP - GET & POST

GETメソッド

GETメソッドは、葉書を送るようなものです。書いたすべてのことが、それを扱うすべての人に見えます。シンプルで明確で、非機密情報には最適です。

GETの仕組み

GETメソッドを使用すると、データはURLに名前-値のペアとして追加されます。例を見てみましょう:

<a href="welcome.php?name=John&age=25">クリックして!</a>

この例では、リンクをクリックすると、「welcome.php」にリダイレクトされ、名前(John)と年齢(25)の2つの情報が渡されます。

GETデータの取得

受信側(welcome.php)では、$_GETスーパーグローバル配列を使用してこのデータにアクセスできます:

<?php
echo "ようこそ、" . $_GET['name'] . "さん!あなたは" . $_GET['age'] . "歳です。";
?>

これが表示されます:「ようこそ、Johnさん!あなたは25歳です。」

覚えておいてください、GETは検索クエリーやフィルタリング、またはURLに表示しても問題ないデータに最適です。

POSTメソッド

さて、POSTについて話しましょう。GETは葉書的话、POSTは封書のようです。より安全で、大量のデータを処理できます。

POSTの仕組み

POSTはHTTPリクエストの本文にデータを送信し、URLには含まれません。以下はPOSTを使用した簡単なフォームです:

<form action="process.php" method="POST">
<input type="text" name="username" placeholder="ユーザー名を入力">
<input type="password" name="password" placeholder="パスワードを入力">
<input type="submit" value="ログイン">
</form>

POSTデータの取得

process.phpでは、以下のように提出されたデータにアクセスできます:

<?php
$username = $_POST['username'];
$password = $_POST['password'];

echo "ユーザー:$usernameのログインを試みています";
// 実際のアプリケーションではパスワードを表示しないでください!
?>

POSTはパスワードや大量の情報を送信するのに最適です。

GETとPOSTの違い

以下に主要な違いをまとめます:

機能 GET POST
可視性 URLにデータが表示される URLにデータが表示されない
安全性 より安全でない より安全
データサイズ 制限があります(約2000文字) 严格的な制限なし
キャッシュ キャッシュされる 通常キャッシュされない
ブックマーク ブックマーク可能 ブックマーク不可
使用用途 データの取得 データの送信

$_GET配列

$_GET配列は、GETデータをすべて収集するPHPスーパーグローバルです。GETで送信されたすべてのデータをキャッチする魔法のバスケットのようなものです。

例:

URLが以下のようにあるとします:search.php?category=books&author=rowling

search.phpでは、以下のようにこのデータにアクセスできます:

<?php
$category = $_GET['category'];
$author = $_GET['author'];

echo "$categoryを探しています:$author";
?>

これが表示されます:「booksを探しています:rowling」

$_POST配列

同様に、$_POSTはPOSTデータをすべて収集するスーパーグローバルです。POSTで送信されたすべてのデータを保管する安全な金庫のようなものです。

例:

以下のフォームがPOSTでprocess.phpに送信されるとします:

<?php
$email = $_POST['email'];
$message = $_POST['message'];

echo "$emailからのメッセージを受け取りました:$message";
?>

覚えておいてください、亲爱的学生们、ユーザー入力を使用する前に常に sanitation(消毒)および検証を行ってください。信じてください、開発者がこれを忘れると、予想外のことが起こることがあります!

実践的な練習

それでは、楽しい小さな練習ですべてをまとめましょう。私たちは「数字を当てる」ゲームを構築しています。

  1. 推測を入力するフォーム(GETメソッド)を作成します:
<form action="guess.php" method="GET">
<input type="number" name="guess" placeholder="推測を入力(1-100)">
<input type="submit" value="推測!">
</form>
  1. guess.phpで推測を処理します:
<?php
$secretNumber = 42; // 秘密の数字
$guess = isset($_GET['guess']) ? (int)$_GET['guess'] : 0;

if ($guess == $secretNumber) {
echo "おめでとうございます!正解しました!";
} elseif ($guess < $secretNumber) {
echo "低すぎます!もう一度試して!";
} else {
echo "高すぎます!もう一度試して!";
}
?>

この簡単なゲームは、GETを使用してデータを送信および受信し、PHPで処理する方法を示しています。

結論として、GETとPOSTメソッドを理解することは、任何のPHP開発者にとって重要です。它们はウェブの郵便サービスのように、クライアントとサーバー間でデータを送信し接收します。覚えておいてください、データが全世界に見えることを問題に思わない場合にはGETを使用し、データを秘密にしたい場合にはPOSTを使用します。

最後に、ある生徒が言ったことを思い出します、「GETとPOSTは公演と囁きのようです。時々は皆に聞かせたいことがあり、時々は聞かせたくないことがあります!」私もこれ以上の説明ができません。

練習を続け、好奇心を持ち、楽しいコーディングを!

Credits: Image by storyset