📘 جزوه آموزشی کامل درباره 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
- اطلاعات مخفی ارسال میشود
- مناسب ثبتنام، ورود، ارسال فایل
- امنیت بیشتر