Наверное нарушена целостность базы данных

В общем пришло письмо от пользователя на сайте, при открытии ссылки /talk/ выходит ошибка:
E_ERROR [1] Call to a member function getTalkId() on a non-object (/var/www/*****/data/www/studlife.kz/common/classes/modules/talk/Talk.class.php on line 360)

Перпроверил на существование user_id / talk_id в одной таблице и отсутсвие их в другой... никаких результатов.
Как можно это исправить?
Проверял запросами типа:
SELECT * FROM LS_talk WHERE LS_talk.talk_id not in (SELECT talk_id FROM LS_talk_user)

На префикс не обращайте внимания у меня Alto CMS: 1.0.6

Похожие статьи

  • Автопревью из фотосета и youtube
    Стоит плагин Topic-intro, проблемы: 1- указываю в топике ссылку на видео с ютуба, качество превью оч. низкого качества. 2- в топике загружаю картинки в фотосет, но автоматически превью из них не создается. По...
  • Как заменить файл tpl через плагин?
    Привет всем! Пишу плагин, в нём нужно заменить файл модального окна modal.write.tpl на мой собственный. Для этого в файле PluginMyplugin.class.php я заполняю $aDelegates: public $aDelegates = array( '...
  • Вопрос о меню и его структуре
    Всем привет, давно уже слежу как за лайвстритом, так и за альто и вот зашел в альто в тупик с меню. Вопрос такой, как изменить структуру кода меню, точнее в каких файлах генерируется сетка и где можно заменить теги...
  • Не работает кнопка «изменить фотографию» в настройках пользователя
    Тема «Start-Kit», кнопка «изменить фотографию» та которая «online», на других темах идущих в поставке все нормально. Версия движка последняя.

13 комментариев

+1
Презабавная штука, наткнулся когда вместо xcache включил memcache
Если у вас также используется Memcache, могу порекомендовать сделать как я делал
в файле /var/www/core01/data/www/studlife.kz/common/classes/modules/talk/Talk.class.php в 360 строке вместо
$aTalkUsers[$data[$sKey]->getTalkId()] = $data[$sKey];
написать
$aTalkUsers[$data[$sKey]['data']->getTalkId()]=$data[$sKey]['data'];
0
Вы правы у меня memcache, исправил, всё работает!
Думаю об этом нужно сообщить Вадиму, так как при обновлении движка файл Talk.class.php может менятся!
Спасибо Вам огромное!
+1
Я до сих пор на старой версии, поэтому и не писал. Ошибка абсолютно не логичная и почему только в одном месте данные по разному выгружаются в зависимости от кэширования, чертовщина
0
Я таки нашел memcache оказался IsMultiLoad(), а xcache нет, ну и поправку надо маленькую в коде сделать
0
Возникла ошибка следущего рода, причем не во всех статьях E_NOTICE [8] unserialize(): Error at offset 185 of 281 bytes (/var/www/****/studlife.kz/common/classes/modules/topic/entity/Topic.entity.class.php on line 844

/**
     * Извлекает сериализованные данные топика
     */
    protected function extractExtra() {

        if (is_null($this->aExtra)) {
         --->   $this->aExtra = @unserialize($this->getExtra());
        }
    }


На строчку указывает стрелочка
Пример: studlife.kz/post/17/
Отредактирован:
0
Первое что подсказывает гугл, это наличие экранирования в текстовой строке stackoverflow.com/questions/4149030/php-unserialize-error-at-offset-works-on-some-servers-not-others

Вчера у еще одного человека внезапно включился magic_quotes_gpc в php. Может у вас таже беда?
Попробуйте сделать var_dump, посмотрим что там происходит
0
Теперь отображается вот такая ошибка:
Fatal error: Call to a member function getUserWebPath() on a non-object in /studlife.kz/_tmp/templates/modernstyle-default/compiled/default^4be51b6f704cfc6142c88900be77626e4109c5a9.file.comment.tpl.php on line 62
62 строчка это
<a href="<?php echo $_smarty_tpl->tpl_vars['oUser']->value->getUserWebPath();?>
"><img src="<?php echo $_smarty_tpl->tpl_vars['oUser']->value->getProfileAvatarPath(48);?>
" alt="<?php echo $_smarty_tpl->tpl_vars['oUser']->value->getLogin();?>
" class="comment-avatar" /></a>
0
Вы пользователей последнее время не удаляли? =)
0
Удалял пользователей, только когда была первая ошибка, проверял запросами целостность всё вроде нормально! Потом мы с Вами избавились от ошибки следующим образом: altocms.ru/706.html#comment12816
0
эта ошибка не была связана с удаленными пользователя, а исключительно с ошибкой при кэшировании. Тут совершенно иное. Похоже что пользователь удален, а его комментарии остались.
Отредактирован:
0
Я понимаю, проверяю запросами типа:
SELECT * FROM `LS_comment` WHERE user_id NOT IN(SELECT user_id FROM LS_user)

Выдается пустой результат, также проверяю и comment_online тоже ничего!
0
Ничего не менял, обновил PHP + убрал экранирование, менял шаблоны чистил кэш — безрезультатно, взял перерыв, отдохнул, ошибка исчезла…
0
По ходу вся проблема с этими пользователями…
Отредактирован:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.