بعد از این درس دقیقاً چه بلدی؟
- میتوانی «Validate» را با مثال همین درس توضیح بدهی.
- میدانی «Sanitize» کجای مسئله به کار میآید.
- تغییر پیشنهادی درس را اجرا میکنی و از روی نتیجه، اشتباه را پیدا میکنی.
مسئول ثبتنام فقط برگه را تحویل نمیگیرد
او بررسی میکند نام خالی نباشد و شماره تماس شکل قابل قبول داشته باشد. اعتبارسنجی یعنی بررسی قواعد داده، نه فقط تمیزکردن ظاهر آن.
رسیدن داده به سرور به معنی درستبودن آن نیست. کاربر ممکن است ایمیل ناقص بفرستد، فیلدی را خالی بگذارد یا درخواست را بیرون از فرم ما بسازد.
چرا مهم است؟ ایمیل خام را از فرم میگیریم، فاصلههای دو سرش را حذف میکنیم و بعد با یک قانون آماده PHP شکل آن را میسنجیم.
اولین تمرین تو: ایمیل خام را از فرم میگیریم، فاصلههای دو سرش را حذف میکنیم و بعد با یک قانون آماده PHP شکل آن را میسنجیم.
اول بفهم، بعد کد بنویس
Validate
بررسی میکند مقدار با انتظار برنامه سازگار است یا نه.
Sanitize
بخشهای ناخواسته را حذف یا داده را به شکل مشخص تبدیل میکند؛ جای اعتبارسنجی را نمیگیرد.
Escape
هنگام نمایش داده در HTML، نویسههای خطرناک را بیاثر میکند.
بررسی ایمیل ثبتنام
ایمیل خام را از فرم میگیریم، فاصلههای دو سرش را حذف میکنیم و بعد با یک قانون آماده PHP شکل آن را میسنجیم.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
کد را کامل کن و ساختار آن را بررسی کن
این درس وارد قابلیتهای سروری یا حرفهای شده است. برای امنیت سایت، کد دلخواه روی سرور اجرا نمیشود؛ بررسیگر، وجود اجزای ضروری و منطق مورد انتظار را کنترل میکند و راهنمای اصلاح میدهد.
کد را کامل کن و «بررسی ساختار» را بزن.
این مثال خطبهخط چه میگوید؟
فعلاً حفظ نکن؛ هر خط را به یک جمله ساده تبدیل کن.
- 1
<?phpاز اینجا مفسر PHP شروع به خواندن کد میکند.
- 2
$email = trim($_POST["email"] ?? "");یک مقدار با نام $email نگهداری میشود تا در خطهای بعد دوباره استفاده شود.
- 3
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {یک پرسش درست/نادرست بررسی میشود و مسیر اجرای بعدی را تعیین میکند.
- 4
echo "ایمیل پذیرفته شد";نتیجه این عبارت به خروجی پاسخ فرستاده میشود.
- 5
} else {این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 6
echo "ایمیل معتبر نیست";نتیجه این عبارت به خروجی پاسخ فرستاده میشود.
- 7
}مرز یک بلوک یا فراخوانی در اینجا باز یا بسته میشود.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
یک ایمیل درست و بعد sara@ را آزمایش کن. پیام خطا را طوری بنویس که به کاربر بگوید چه چیزی را اصلاح کند.
از ساده به چالشی، بدون پرش
یکی از مقدارهای مثال را عوض کن، خروجی را روی کاغذ حدس بزن و سپس بررسی کن.
یک ایمیل درست و بعد sara@ را آزمایش کن. پیام خطا را طوری بنویس که به کاربر بگوید چه چیزی را اصلاح کند.
سناریوی «بررسی ایمیل ثبتنام» را با نامهای واضحتر و یک حالت تازه گسترش بده.
این سه اشتباه را انجام نده
فقط required مرورگر را کافی میدانی و بررسی سرور را حذف میکنی.
trim را معادل معتبرشدن داده میدانی.
ورودی خام را داخل HTML برمیگردانی.
5 پرسش کوتاه؛ مطمئن شو واقعاً یاد گرفتهای
برای هر پرسش یک پاسخ انتخاب کن. بعد از هر انتخاب، دلیل پاسخ را همانجا میبینی.
کدام بررسی باید حتی با وجود required در فرم، روی سرور انجام شود؟
کدام توضیح، «Validate» را دقیقتر بیان میکند؟
بهترین قدم بعد از خواندن مثال این درس چیست؟
کدام روش نشان میدهد این درس را واقعاً فهمیدهای؟
کدام رفتار احتمال خطا را در همین موضوع بیشتر میکند؟
درس را فقط وقتی تمام کن که کد را تغییر دادهای
دیدن آموزش کافی نیست؛ یک مقدار را تغییر بده، خروجی را پیشبینی کن و بعد اجرا بزن.