📘 جزوه آموزشی کامل درباره GET و POST در PHP

🔰 مقدمه

در HTML، وقتی کاربر یک فرم را ارسال می‌کند، اطلاعات واردشده باید به صفحه PHP فرستاده شود تا پردازش شود. این ارسال اطلاعات می‌تواند با دو روش انجام شود:

  • GET
  • POST

هر کدام ویژگی‌ها، کاربردها و مزایا و محدودیت‌های مخصوص خود را دارند.


🟦 1. GET چیست؟

✔ تعریف ساده:

GET اطلاعات را از طریق آدرس صفحه (URL) ارسال می‌کند.

به‌عنوان مثال، ممکن است آدرس این‌گونه دیده شود:

example.com/page.php?name=ali&age=20

در این روش، اطلاعات بعد از علامت ? قرار می‌گیرند و هر مقدار با & از هم جدا می‌شود.


✔ ویژگی‌های GET

⭐ 1. اطلاعات در آدرس دیده می‌شوند

همه چیز در URL نمایش داده می‌شود.

⭐ 2. امنیت کم

برای ارسال اطلاعات مهم، رمز و داده‌های حساس مناسب نیست.

⭐ 3. محدودیت حجم دارد

حدود 2000 کاراکتر بیشتر نمی‌شود.

⭐ 4. مناسب برای جستجو، فیلتر، صفحات محصولات

چون می‌توان لینک را برای دیگران ارسال کرد.


✔ مثال یک فرم با GET:

<form action="result.php" method="get">
    نام: <input type="text" name="name">
    سن: <input type="number" name="age">
    <input type="submit" value="ارسال">
</form>

✔ دریافت اطلاعات در PHP

در فایل result.php:

<?php
$name = $_GET['name'];
$age = $_GET['age'];

echo "نام: $name <br>";
echo "سن: $age";
?>

نکته: اگر نام فیلد در HTML برابر name باشد، در PHP باید از $_GET['name'] استفاده کنیم.


🟧 2. POST چیست؟

✔ تعریف ساده:

در POST اطلاعات در داخل بدنه درخواست ارسال می‌شوند و در آدرس دیده نمی‌شوند.

این روش امن‌تر و حرفه‌ای‌تر است.


✔ ویژگی‌های POST

⭐ 1. اطلاعات در آدرس دیده نمی‌شود

مناسب رمز عبور و اطلاعات مهم.

⭐ 2. محدودیت حجم بسیار کمتر

می‌توان مقدار زیادی اطلاعات ارسال کرد.

⭐ 3. مناسب برای ثبت‌نام، ورود، ذخیره داده‌ها در دیتابیس

تقریباً در همه فرم‌های مهم از POST استفاده می‌شود.


✔ مثال یک فرم با POST:

<form action="result.php" method="post">
    ایمیل: <input type="email" name="email">
    رمز عبور: <input type="password" name="password">
    <input type="submit" value="ارسال">
</form>

✔ دریافت اطلاعات در PHP

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

echo "ایمیل: $email <br>";
echo "رمز عبور: $password";
?>

🟩 3. تفاوت GET و POST — جدول مقایسه‌ای

موضوع GET POST
نمایش اطلاعات در آدرس بله خیر
امنیت کم بهتر
محدودیت حجم دارد ندارد (تقریباً زیاد)
کاربرد جستجو، فیلتر، صفحات ساده فرم‌های مهم، ورود، ثبت‌نام، ارسال فایل
ذخیره رمز عبور ❌ مناسب نیست ✔ مناسب
امکان ذخیره لینک ✔ بله ❌ خیر
ارسال فایل (file) ❌ نمی‌شود ✔ می‌شود

🟥 4. چه زمانی از GET و چه زمانی از POST استفاده کنیم؟

✔ از GET استفاده کنید اگر:

  • اطلاعات مهم نیست
  • می‌خواهید لینک قابل اشتراک باشد (مثل سرچ محصولات)
  • مقدارها کوتاه هستند

✔ از POST استفاده کنید اگر:

  • اطلاعات مهم است
  • فرم ثبت‌نام یا ورود دارید
  • اطلاعات حجم زیاد دارد
  • فایل آپلود می‌کنید

🟨 5. مثال‌های کاربردی


📌 مثال 1: فرم جستجو با GET

<form action="search.php" method="get">
    جستجو:
    <input type="text" name="q">
    <input type="submit" value="بگرد">
</form>

دریافت در PHP:

$query = $_GET['q'];
echo "نتیجه جستجو برای: $query";

📌 مثال 2: فرم ثبت‌نام با POST

<form action="signup.php" method="post">
    نام:
    <input type="text" name="name"><br><br>

    ایمیل:
    <input type="email" name="email"><br><br>

    رمز عبور:
    <input type="password" name="password"><br><br>

    <input type="submit" value="ثبت‌نام">
</form>

دریافت در PHP:

$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];

🟦 6. نکات خیلی مهم برای دانش‌آموزان مبتدی

⭐ نکته 1: اگر نام فیلد (name) نداشته باشد، هیچ اطلاعاتی ارسال نمی‌شود.

<input type="text">

این ورودی بدون name هیچ فایده‌ای ندارد.


⭐ نکته 2: اگر method را ننویسید، پیش‌فرض GET است.

<form action="page.php">

⭐ نکته 3: همیشه هنگام دریافت اطلاعات بهتر است ابتدا بررسی کنیم مقدار وجود دارد یا نه:

if (isset($_POST['name'])) {
    echo $_POST['name'];
}

🟩 7. مثال خیلی کامل – فرم + دریافت اطلاعات + توضیح

فرم (POST):

<form action="result.php" method="post">
    نام:
    <input type="text" name="fullname"><br><br>

    شهر:
    <input type="text" name="city"><br><br>

    <input type="submit" value="ارسال">
</form>

result.php

<?php
echo "نام: " . $_POST['fullname'] . "<br>";
echo "شهر: " . $_POST['city'];
?>

🎓 خلاصه بسیار کوتاه و قابل حفظ برای امتحان

✔ GET

  • اطلاعات در آدرس دیده می‌شود
  • مناسب جستجو و فیلتر
  • امنیت کمتر

✔ POST

  • اطلاعات مخفی ارسال می‌شود
  • مناسب ثبت‌نام، ورود، ارسال فایل
  • امنیت بیشتر