Jump to content

3.4.7. При удалении сообщения ошибка.

Featured Replies

Posted
comment_77104

Добрый день. Обновления с 3.4.5 на 3.4.7 прошло гладко. Но есть небольшая ошибка при удалении сообщения.

 

Сегодня залез в панель модератора, там удалил темы, перешел в закладку сообщения и попробовав удалить сообщение выдало вот это.

Date: Tue, 30 Dec 2014 00:40:41 +0000
 Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (132361) AND attach_rel_module='post'' at line 1
 IP Address: ХХХХХХХХХХ - /index.php?app=forums&module=moderate&section=moderate&do=p_hdelete&f=36&t=2325&pid[]=132361&st=&auth_key=dbe1ab65a33355664fa3741747f5fe6a&return=modcp:deleted
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 mySQL query error: SELECT * FROM ibf_attachments WHERE  IN (132361) AND attach_rel_module='post'
 .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
 | File                                                                       | Function                                                                      | Line No.          |
 |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
 | admin/applications/forums/sources/classes/moderate.php                     | [class_attach].bulkRemoveAttachment                                           | 1119              |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | admin/applications/forums/modules_public/moderate/moderate.php             | [moderatorLibrary].postDeleteFromDb                                           | 418               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | admin/applications/forums/modules_public/moderate/moderate.php             | [public_forums_moderate_moderate]._multiRemoveHardDeletedPost                 | 362               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | admin/applications/forums/modules_public/moderate/moderate.php             | [public_forums_moderate_moderate]._postsManage                                | 248               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | admin/sources/base/ipsController.php                                       | [public_forums_moderate_moderate].doExecute                                   | 306               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

В этом сообщение нет приаттаченных файлов, тупо текст, почему он ругается на таблицу с аттачами я не знаю.

  • 2 недели спустя...
  • Author
comment_78500

На всякий случай попробую Апнуть.

Тоже самое, если в адмике у пользователя нажать ОПЦИИ-Удалить все сообщения.

  • 2 месяца спустя...
comment_83698

Победили проблему? Та же самая беда выскочила.

 

Если есть решение- поделитесь, а то поиск результатов не приносит...

comment_83721

Та же проблема и у меня...

 Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (5642) AND attach_rel_module='post'' at line 1

Появилась так же после обновления с 3.4.6  на 3.4.7.

Темы удалить можно без проблем а вот сообщения приходится ждать когда движок сам удалит автоматически...

comment_83722

хм...развернул рядом 2-й форум, чистый, без доп.модулей и хуков...для свей базы он удаляет сообщения через acp

в conf_global.php подменил ему базу на "рабочую"  и...ничего не изменилось, пошла ошибка.

Вывод- хуки и моды к данной проблеме если и имеют отношение, то только косвенное - надо искать различия в таблицах базы...

Бегло: структура таблицы attachments совпадает на 100%, её исключаем...

comment_83726

Оп ...

В двух словах:

Ошибка возникает ТОЛЬКО при попытке уделения из acp и только тогда, когда сообщение уже было удалено с форума средствами модерирования.

Возникает она даже на чистом форуме.

В базе записи о сообщениях при удалении средствами модерирования не удалятся, о чем сигнализирует нам в acp счетчик сообщений пользователя.

Ни установленные хуки, ни что другое на неё не влияет.

Вероятнее всего в самом движке собака зарылась.

Вывод только один - либо отключать функцию удаления сообщений модераторам и всем, оставлять только возможность скрытия, а

полное удаление сообщений оставлять только через acp , либо забить...

Причина возникновения ошибки теперь ясна.

Метод решения - ковырять и переписывать файлы, отвечающие за выборку и удаление сообщений из базы.

Вряд ли кто-то кроме разработчиков движка займется этим, посему тему можно считать закрытой, а ошибку считать ворнингом и криворукостью разработчиков.

Edited by tonyk

comment_83744
В коде есть баг. В чем заключается решение не помню, но видел на ipbskins.ru с аналогичной проблемы.

Там всего две темы по поводу этой ошибки и в обоих случаях виновен хук.

В моем случае как и выше в теме я отключал все хук они не причем.

 

Ну что же движок тут не причем, сегодня и я установил Версия: IP.Board 3.4.7 английский язык все работает на ура, проблем нет.

Сейчас сделаю локализацию на русский, я думаю проблема там.

Нет русский язык тоже не причем все работает без ошибок, сообщения удаляются, перевел и админ панель тоже, все норм.

Сейчас прикручу базу форума где есть ошибка на новый форум посмотрим будет ли ошибка...

Edited by BertT

comment_83750
Там всего две темы по поводу этой ошибки и в обоих случаях виновен хук.

 

Смотря как искать. 

Edited by soka

comment_83802

И так:

Ошибка связана с проверкой на предмет прикрепленных файлов.

Если в файле admin/applications/forums/sources/classes/moderate.php

Закоментировать проверку прикрепленных файлов

 

// Is there an attachment to this post?
//-----------------------------------------

//$classToLoad  = IPSLib::loadLibrary( IPSLib::getAppDir( 'core' ) . '/sources/classes/attach/class_attach.php', 'class_attach' );
//$class_attach = new $classToLoad( $this->registry );
//$class_attach->type = 'post';
//$class_attach->init();

//$class_attach->bulkRemoveAttachment( array_keys( $posts ), $taskInitiated );

Работоспособность на предмет удаления из acp восстанавливается, но я так предполагаю, что таким путем могут быть вызваны еще какие-либо ошибки...


В общем-то осталось найти, где формируется строка вида

IN (132361)

и изменить её так, что бы формировалось так

 

attach_rel_id=132361

 

Edited by tonyk

comment_83815

хм...вот это поворот...

где формируется сам запрос нашел, установил принудительно attach_rel_id вместо переменной $id_type, которой присвоено это же значение и что получил? снова пустой запрос.

Случайно прописал не верный запрос, после чего обратил внимание, что из запроса исчезает именно attach_rel_id...

Функция bulkRemoveAttachment, которая формирует запрос работает корректно, но вот что именно удаляет attach_rel_id из запроса при обработке этой функции?

Временно можно устранить закоментировав строчку в файле admin/applications/forums/sources/classes/moderate.php

//$class_attach->bulkRemoveAttachment( array_keys( $posts ), $taskInitiated );

Edited by tonyk

comment_83816

//$class_attach->bulkRemoveAttachment( array_keys( $posts ), $taskInitiated );

Заменить на

$class_attach->bulkRemoveAttachment( array_keys( $posts ), 'attach_rel_id', $taskInitiated );

comment_83823

Проблему с ошибкой решил заменой moderate.php скопировав его  с тестового форума.

Теперь все работает, сообщения с темы удаляются без ошибок.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.