- پنجشنبه 30 مهر 1405 ساعت 22:00
- 3.1.9
- کامل شده
- منقضی شده
URL Helper ساخت و مدیریت URLهای داخلی و خارجی را ساده میکند. این Helper برای تولید لینک، آدرس پایه، URL فعلی، لینک ایمیل و Redirect کاربرد دارد. اگر Base URL پروژه درست تنظیم شده باشد، لینکها در محیطهای مختلف قابل نگهداریتر خواهند بود.
کاربرد و توابع اصلی
site_url() آدرس همراه با index_page را میسازد، base_url() مسیر پایه را میدهد، current_url() آدرس فعلی را برمیگرداند، anchor() لینک HTML تولید میکند، prep_url() پروتکل را در صورت نیاز اضافه میکند و redirect() کاربر را به مقصد میفرستد.
نمونه استفاده
$this->load->helper('url');
echo anchor('products/view/42', 'مشاهده محصول');
$url = site_url('orders/history');
redirect('account/login');نکته مهم
ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.
مطالعه مرتبط
برای ادامه مطالعه، کوئری، SQL Injection را ببینید.
توابع URL Helper
| متد یا مفهوم | کاربرد |
|---|---|
site_url() | ساخت URL همراه index_page. |
base_url() | ساخت URL پایه. |
current_url() | URL درخواست جاری. |
anchor() | ساخت لینک HTML. |
auto_link() | تبدیل URL و ایمیل به لینک. |
prep_url() | تکمیل پروتکل URL. |
redirect() | ارسال Redirect HTTP. |
url_title() | ساخت عنوان مناسب URL. |
نکات استفاده در پروژه
Helperها معمولاً وضعیت داخلی نگه نمیدارند و برای تبدیل یا تولید مقدارهای کوچک مناسباند. آنها را فقط در Controller یا فایلهای View بارگذاری نکنید، اگر در چند بخش برنامه استفاده میشوند میتوانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها بهصورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.
در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.
در بازبینی کد، ترتیب و نتیجه متدهای site_url()، base_url()، current_url()، anchor() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.