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 استفاده کنیم نتیجه را می بینیم :
- نوشته شده توسط احسان عباسی
- بازدید: 18138