بعد از این درس دقیقاً چه بلدی؟
- GET و POST را درست انتخاب کنی
- وجود و اعتبار ورودی را بررسی کنی
- خروجی را برای نمایش امن کنی
فرم مثل برگه ثبتنام است
نوشتن اطلاعات روی برگه کافی نیست؛ مسئول ثبتنام باید بررسی کند نام خالی نباشد و ایمیل شکل درستی داشته باشد. PHP همان مسئول دقیق پشت پیشخوان است.
GET برای دریافت و جستوجو: داده در نشانی دیده میشود و لینک قابل اشتراک است؛ برای فیلتر و جستوجو مناسب است، نه اطلاعات حساس.
چرا مهم است؟ داده در نشانی دیده میشود و لینک قابل اشتراک است؛ برای فیلتر و جستوجو مناسب است، نه اطلاعات حساس.
اولین تمرین تو: مقدار $name را خالی کن و پیام خطا را ببین. سپس پیام خطا را دوستانهتر بنویس.
اول بفهم، بعد کد بنویس
GET برای دریافت و جستوجو
داده در نشانی دیده میشود و لینک قابل اشتراک است؛ برای فیلتر و جستوجو مناسب است، نه اطلاعات حساس.
POST برای ایجاد یا تغییر
داده داخل بدنه درخواست میرود؛ برای ثبت فرم مناسبتر است، اما بهتنهایی رمزنگاری یا امنیت ایجاد نمیکند.
اعتبارسنجی و Escape
اول ورودی را از نظر نوع و قواعد کسبوکار بررسی کن؛ هنگام نمایش از تابع مناسب مانند htmlspecialchars استفاده کن.
مثال واقعی: ثبتنام در دوره PHP
کاربر نام و ایمیل را وارد میکند. نمونه مرورگر ورودی دریافتشده را شبیهسازی میکند تا منطق بررسی فرم را بدون ارسال اطلاعات واقعی تمرین کنی.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
کد را تغییر بده و نتیجه واقعی را ببین
این مفسر آموزشی امن، بخش پایه PHP شامل متغیر، محاسبه، رشته، آرایه، تابعهای ساده و if/else را در مرورگر اجرا میکند. کد به سرویس دیگری ارسال نمیشود.
برای دیدن نتیجه، «اجرای کد» را بزن.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
مقدار $name را خالی کن و پیام خطا را ببین. سپس پیام خطا را دوستانهتر بنویس.
این بخش روی سرور چگونه نوشته میشود؟
در سرور واقعی، مقدار از $_POST میآید. trim فاصله اضافی را میگیرد و htmlspecialchars هنگام نمایش، نویسههای HTML را بیخطر میکند. این دو کار جای اعتبارسنجی را نمیگیرند.
<?php
$name = trim($_POST["name"] ?? "");
$safeName = htmlspecialchars($name, ENT_QUOTES, "UTF-8");
echo $safeName;این سه اشتباه را انجام نده
اعتماد مستقیم به $_POST و $_GET
نمایش ورودی خام داخل HTML
تصور اینکه POST اطلاعات را خودکار امن یا مخفی میکند
5 پرسش کوتاه؛ مطمئن شو واقعاً یاد گرفتهای
برای هر پرسش یک پاسخ انتخاب کن. بعد از هر انتخاب، دلیل پاسخ را همانجا میبینی.
برای صفحه جستوجویی که باید لینک آن قابل اشتراک باشد، کدام روش بهتر است؟
ورودی فرم را کجا باید اعتبارسنجی کنیم؟
برای نمایش امن نام کاربر داخل HTML کدام ابزار مناسب است؟
کدام روش نشان میدهد این درس را واقعاً فهمیدهای؟
کدام رفتار احتمال خطا را در همین موضوع بیشتر میکند؟
درس را فقط وقتی تمام کن که کد را تغییر دادهای
دیدن آموزش کافی نیست؛ یک مقدار را تغییر بده، خروجی را پیشبینی کن و بعد اجرا بزن.