Всем здравствуйте! При авторизации в панель управления или на сайт (когда он выключен) выдаёт ошибку: Fatal error: Call to a member function load() on a non-object in /*******/*******/******/********/*******/libraries/joomla/user/user.php on line 869 вот что там написано: // Load the JUserModel object based on the user id or throw a warning. if (!$table->load($id)) Сам сайт открывается, правда пропал весь контент (кроме меню). Если сайт закрыт и нужна авторизация, то выдаёт ту же ошибку после ввода логина и пароля. В админке, если логин или пароль неправильные, то пишет что неправильные, а если правильные вводить, то вот эта ошибка. Помогите пожалуйста разобраться, если кто знает в чём дело. P.S. В поиске по форуму ничего не нашёл.
ошибка означает что переменная $table не является объектом в котором может быть функция load() ищи место создания объекта $table и разбирайся почему там всё что угодно кроме нужного тебе содержимого
ищи вирусы и шелл. Взломали. Это класс для работы с таблицами, а метод, которому передается недействительный id юзера
@draff если ID будет пустым обратно вернутся вообще все записи, смотри libraries\joomla\table\table.php строка 661
Еще бы знать какой версии Джумла. Да не похоже. Там защита от пустого ключа переданного в параметрах функции load
эта функция вроде везде абсолютно одинаковая, с небольшими изменениями я смотрел в 3.4 и там если ID (в load это $keys) пустое то
а это значит что: строка 866 libraries\joomla\user\user.php видимо там у тебя какая то фигня передаётся в $table
Спасибо огромное за Ваши ответы. К сожалению я не знаю как найти место создания объекта $table. Я даже сомневаюсь что разберусь почему там всё что угодно кроме нужного мне содержимого (хотя может и получится), но вначале подскажите мне пожалуйста (если это конечно возможно) как найти это место... Кстати в логах нашёл ещё такие ошибки: PHP Fatal error: Call to a member function load() on a non-object in *******/libraries/legacy/model/admin.php on line 901 там это: // Attempt to load the row. $return = $table->load($pk); и ещё: PHP Fatal error: Call to a member function getProperties() on a non-object in *********/libraries/legacy/model/admin.php on line 913 там: // Convert to the JObject before adding other data. $properties = $table->getProperties(1); Они что то значат в моём случае?
я указал где (не читаешь что ли?): та же фигня и с этим почему то отсутствует нужная функция в объекте $table
Посмотрел строка 866 libraries\joomla\user\user.php. // Create the user table object $table = $this->getTable(); На всякий случай скачал последний дистрибутив джумлы, что бы сравнить файлы на предмет каких то изменений. Файлы абсолютно одинаковые. Получается что фигни нет ((( Вот все строки от 863 по 877: public function load($id) { // Create the user table object $table = $this->getTable(); // Load the JUserModel object based on the user id or throw a warning. if (!$table->load($id)) { // Reset to guest user $this->guest = 1; JLog::add(JText::sprintf('JLIB_USER_ERROR_UNABLE_TO_LOAD_USER', $id), JLog::WARNING, 'jerror'); return false; }
если фигни нет, то почему отсутствует функция load? используй трассировку кода что бы понять что у тебя в $table находится и по какой причине не вызывается или вызывается не правильно функция load для трассировки надо настраивать отладку на сервер (на хостинге ни как, на локалке проще париной репы) и использовать какой либо IDE редактор
@woojin, спасибо за помощь! (Через кнопочку тоже сказал). К огромному сожалению у меня нет возможности настроить отладку на локальной машине, да и для меня пока трассировка, это достаточно сложный процесс. Так что своими силами (этим способом) я вопрос не решу. Может есть какой нибудь другой способ (для чайников) типа перезалить файлы джумлы из полного дистрибутива?
я бы на твоём месте, потерял по изучал пару вечеров, как настроить отладку в подходящей IDE и исправил бы ошибку но если ЛЕНЬ - ДВИГАТЕЛЬ ПРОГРЕССА, то попробуй, если сайт абсолютно пустой, если с инфой то придётся возиться с переносом
Ещё раз огромное спасибо! Перезалил папку "libraries". Проблема входа решена. Админка загружается с любыми пользователями. Правда вторая проблема пока так и осталась. На сайте пропал весь контент и никаких ошибок не выдаёт. Это появилось не после перезаливки папки. Проблема возникла сразу. Т.е. пропал контент на сайте и перестала работать авторизация. Хотел сначала решить одну проблему, а потом вторую. Вопрос с автризацией решился. Может ещё подскажешь как можно узнать в чём дело, если ошибки не показывает?
На самом деле вопрос был очень простой и говорит только о моей невнимательности. На сайте работали только "контакты". Весь контент, кроме контактов, на сайте выводится с помощью модулей от RocketTheme. Вероятно в какой то момент обновились или каким то другим способом изменились файлы джумлы и все модули и плагины от Рокетов перестали работать. После переустановки всё снова заработало.