• 3.1.9
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

Form Validation Library قواعد اعتبارسنجی ورودی فرم را تعریف و اجرا می‌کند. این کتابخانه برای بررسی فیلدهای اجباری، طول متن، قالب ایمیل، عدد، تطابق دو فیلد و قواعد سفارشی استفاده می‌شود. اعتبارسنجی سمت سرور ضروری است، حتی اگر در مرورگر نیز اعتبارسنجی انجام می‌دهید.

ساختار و API اصلی

با set_rules() برای هر فیلد Rule تعریف کنید و با run() اعتبارسنجی را اجرا کنید. set_value() مقدار قبلی ورودی را در فرم نگه می‌دارد، validation_errors() خطاها را برمی‌گرداند و Callback امکان تعریف منطق اختصاصی را فراهم می‌کند.

نمونه استفاده

 $this->load->library('form_validation');
 $this->form_validation->set_rules('email', 'ایمیل', 'required|valid_email');
 $this->form_validation->set_rules('password', 'گذرواژه', 'required|min_length[12]');
 if ($this->form_validation->run() === FALSE) {
     $this->load->view('register');
 } else {
     // persist validated input
 }

نکته مهم

اعتبارسنجی با پاک‌سازی خروجی متفاوت است. داده معتبر ممکن است همچنان هنگام نمایش نیاز به Escape داشته باشد و برای عملیات حساس باید مجوز کاربر نیز بررسی شود.

مطالعه مرتبط

برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.

Ruleهای رایج اعتبارسنجی

متد یا مفهومکاربرد
requiredاجباری بودن فیلد.
valid_emailبررسی قالب ایمیل.
min_length[n] و max_length[n]محدودیت طول متن.
numeric و integerبررسی عددی بودن مقدار.
matches[field]تطبیق با فیلد دیگر.
is_unique[table.field]بررسی یکتا بودن مقدار در دیتابیس.
callback_methodاجرای تابع اعتبارسنجی سفارشی.

نحوه استفاده و عیب‌یابی

در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.

در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایل‌های موقت را پس از پایان عملیات آزاد کنید.

در بازبینی کد، ترتیب و نتیجه متدهای required، valid_email، min_length[n] و max_length[n]، numeric و integer را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

سایر پست های داکیومنت