پیغام خطای Infinite loop detected in JError در جوملا1.7
مقدمه
هنگامی که یک سایت جوملا را در لوکال ایجاد میکنیم و قالب جدید نصب میکنیم و تنظیمات لازم را انجام میدهیم و همه موارد بدرستی کار میکنند باید وقت آنست که سایت را به سرور منتقل کنیم. هنگامی که سایت را به سرور منتقل کردیم ناگهان به پیغام خطای Infinite loop detected in JError مواجه میشویم . برای رفع این خطا باید موارد زیر را تک تک بررسی و اجرا کنیم.
این خطا مربوط به تنظیمات نادرست فایل configuration.php است . این تنظیمات الزاما تنظیمات مربوط به Database و کاربر نیست .
بررسی فایل configuration.php
ابتدا باید فایل configuration.php را باز کنیم و متغیرهای زیر را بررسی کنیم . ممکن است یک یا چند مورد از آنها بدرستی set نشده باشند که باید موارد نادرست را تصحیح کنیم <source lang="php" >
public $dbtype = 'mysqli'; public $host = '[some host]'; public $user = '[some database user]'; public $password = '[some password]'; public $db = '[some database]'; public $dbprefix = '[someprefix_]'; public $log_path = '/logs'; public $tmp_path = '/tmp';
</source>
در مورد خط اول باید عرض کنم که اگر سرور تان mysqli را پشتیبانی نمیکرد باید آنرا برروی mysql تنظیم کنید.
ویرایش فایل error.php
اگر تمامی موارد بالا بدرستی تنظیم شده بود و مشکل پیغام خطا همچنان پا برجاست به آدرس
JoomlaRoot/libraries/joomla/error/error.php
بروید و فایل error.php باز نمایید و تابع throwError در خط 191 ( ممکن است در نسخه جوملا شما این تابع در خط دیگری باشد بنابراین search کنید ) پیدا کنید . <source lang="php" > public static function throwError(&$exception)
{ static $thrown = false; // If thrown is hit again, we've come back to JError in the middle of throwing another JError, so die! if ($thrown) { // خط پایین را از حال کامنت خارج کنید // echo debug_print_backtrace(); jexit(JText::_('JLIB_ERROR_INFINITE_LOOP')); }
</source> و خطی که مشخص شده خط بالای ( jexit ) را از حالت کامنت خارج کنید یعنی علامت // در ابتدای آن خط حذف کنید. و سپس تگ pre را به قبل و بعد خطی که از حالت کامنت خارج کردید اضافه کنید. به صورت زیر: <source lang="php" >
print""; echo debug_print_backtrace(); print"";
</source>
به این صورت جوملا جزئیات پیشتری از خطای موجود در سیستم را به شما ارائه میکند بعد از مشاهده این جزئیات شما میتوانید مورد نادرست را در فایل configuration.php مشاهده و آنرا بدرستی تنظیم کنید .
نکته : پس از رفع این خطا کد موجود در jexit را به حالت اولیه بازگردانید.
منبع : http://docs.joomla.org/Infinite_loop_detected_in_JError_in_Joomla_1.7
جمع آوری و ترجمه: شهاب مطاع پور
هر گونه سوال و یا مشکلی در این رابطه دارید، میتوانید در انجمن تخصصی تیم جوملا فارسی جستجو کرده و در صورت عدم دریافت نتیجه مورد نظر، سوال جدیدی را مطرح کنید.
استفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.
|