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

В общем пришло письмо от пользователя на сайте, при открытии ссылки /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

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

  • Проблема с регистрацией на сайте
    Доброго дня, помогите разобраться с проблемой. После заполнения всех полей для регистрации и нажатия на кнопку регистрация ничего не происходит, даже если нажимать еще один раз, результат тот же, окно регистрации...
  • Вопрос: Сюда еще никто не успел написать
    Помогите пожалуйста столкнулся с такой проблемой Когда захожу на сайт на главной показывает: «Сюда еще никто не успел написать» — http://nanibu.ru/ Та же проблема под ссылкой «Активность» http://nanibu.ru/stream/ —...
  • Не видно смайлов при включенном визуальном редакторе (см. скрин)
    Пробовал на 2-х браузерах под админом и обычным юзером. Включен виз. редактор: При выключенном смайлы есть: Как исправить?
  • SEOPack
    При добавленом плагине SEOPack на странице /admin/seopack/ вываливается сообщение: Exception: Can not find the template "actions/admin/action.admin.seopack_list.tpl" in skin "admin-default" Есть ли...

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
По ходу вся проблема с этими пользователями…
Отредактирован:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.