سبد (0)

defined('_JEXEC') or die چیست؟

در قالب جوملای 2.5 از دستور  defined('_JEXEC') or die استفاده شده است . می خواهیم ببینیم که این دستور چه کاربردی در جوملا دارد . 

در خطوط اولیه فایل index.php در قالب beez در جوملا  دستور defined('_JEXEC') or die نوشته شده است : 

 

دستور1

// No direct access.
defined('_JEXEC') or die;

 

دستور _JEXEC چه کاربردی دارد ؟ 

 در کدهای بالا خط اول فقط یک کامنت است که هیچ کاری را انجام نمی دهد . 

دستور خط دوم به این منظور نوشته شده است که از دسترسی مستقیم به این صفحه و قالب جلوگیری شود .

به طور مثال اگر ما بخواهیم به طور مستقیم  به دایرکتوری index.php  با url  زیر دسترسی داشته باشیم :

 http://mydomain.com/templates/beez_20/index.php 

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

دستور _JEXEC کجا تعریف شده است  ؟ 

دستور _jexec در جوملای 2.5  در  فایل index.php  در دایرکتوری root بصورت زیر تعریف شده است  : 

دستور 2

define('_JEXEC', 1);

 به منظور تایید صحت این سخن ما می توانیم تغییری در فایل index.php در جوملا پدید بیاوریم  و مقدار _JEXEC را از 1 به 123456 تغییر

دهیم :

دستور3

define('_JEXEC', 123456);

 اگر قالب خود را ویرایش کنیم  و از echo  برای پرینت jexec استفاده کنیم  نتیجه را می بینیم : 

نتیجه و کد

// No direct access.
echo _JEXEC;
defined('_JEXEC') or die;
خودتان امتحان کنید »
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه