Иногда возникает довольно таки необычная ошибка в joomla: Infinite loop detected in JError как правило возникает в том случае если что-то неправильно указано в конфигурации Joomla (файл configuration.php в корне сайта).
В первую очередь проверьте следующие свойства (переменные) в конфигурации:
public $dbtype = 'mysqli'; // если ваш сервер не поддерживает mysqli, попробуйте 'mysql' 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';
Что бы получить подробную информацию об ошибке, отредактируйте файл на сервере «/libraries/joomla/error/error.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')); }
Замените
// echo debug_print_backtrace();
на
print"<pre>"; echo debug_print_backtrace(); print"</pre>";
После этого Joomla покажет более детальное описание ошибки, которые могли бы дать подсказки, о том как исправить настройки в configuration.php. Не забудьте после исправления ошибки выключить подробные отчеты об ошибках, закомментировав данную строчку.
Проверка соединения с БД скриптом
Статус соединения с сервером БД и наличие базы, указанной в настройках configuration.php можно проверить с помощью следующего php-скрипта:
<?php header('Content-Type: text/html; charset=utf-8'); if (file_exists('configuration.php')) { require_once 'configuration.php'; $config = new JConfig(); } else { die('Файл конфигурации не найден!'); } $link = mysql_connect($config->host, $config->user, $config->password) or die('Соединться с базой не удлось. Ошибка - '.mysql_error()); $db_list = mysql_list_dbs($link); while ($row = mysql_fetch_object($db_list)) { if ($row->Database === $config->db) { $find_db = true; break; } else { $find_db = false; } } if ($find_db) { die('OK'); } else { die('База данных "'.$config->db.'" не найдена!'); } ?>
Создайте в корне сайта файл например connect.php с содержимым, указанным выше, далее в адресной строке браузера наберите адрес — «http://домен/connect.php»
При удачном соединении с БД появится надпись — «ОК». При ошибке выведется соответствующее сообщение.
Хотите купить игрушки недорого? В магазине toys-galaxy.ru вас ждет огромный выбор детских игрушек по доступным ценам.