Уважаемые админы продвигается ли работа по новой версии нашего сайта, ведь о ее замысле объявили год назад? _________________ "Life Is Football ... Football Is Manchester United" - George Best
Зарегистрирован: Nov 02, 2007 Сообщения: 82 Откуда: Украина, Одесса
Добавлено: Вт Сен 08, 2009 10:44 Заголовок сообщения:
DuncanEdwards писал(а):
Давно хотел спросить. От чего возникает - в этой теме сообщений нет?
Вроде как, когда модерируется и удаляется последний пост в теме. _________________ A Scouser is never drunk, so long as he can hold onto the kerb and not fall out of 'the pool'
Добавлено: Вт Сен 08, 2009 11:36 Заголовок сообщения:
DuncanEdwards, не уверен что это так, но приведу как пример: Все что вы видите на этом ресурсе покоится в базе данных, в том или ином виде. Весь контент разбивается на сущности (новость, файл, сообщение, тема, пользователь), у которых есть определенные атрибуты (имя пользователя, мыло, подпись...). У каждого типа контента есть свой уникальный индентификатор в базе (ID), по которому его можно отличить от всех остальных. Возможно, что после удаления одного элемента сущности из базы данных происходит не удаление, как таковое, то есть стирание всей информации из базы о нем, а у данной сущности просто есть атрибут УДАЛЕНО, который описывает состояние элемента и возможные его значения 0 или 1. В таком случае при любой выборке, например, сообщений на форуме нужно проводить проверку установлено ли поле УДАЛЕНО в 1, если да, то данный элемент не принимает участия в выборке, если в 0, то принимает. А в нашей ситуации, скорее всего, при разбивке темы на страницы, работает самый обычный счетчик сообщений, без проверки удалено сообщение или нет, то есть счетчик просто подсчитывает количество ID данной сущности в базе. А уже, когда происходит вывод сообщений для пользователей, то указанная выше проверка срабатывает (то есть движок форума таки проверяет удалено сообщение иль нет) и из-за того, что счетчик всегда насчитывает максимально возможное количество сообщений, которых естественно больше, чем отображаемых, мы и наблюдаем эту дурацкую ошибку. _________________ Champ20ns
Зарегистрирован: Nov 30, 2007 Сообщения: 1979 Откуда: Акмолинск, Казахстан
Добавлено: Вт Сен 08, 2009 16:11 Заголовок сообщения:
Frantic_Den, спасибо Дени за ответ, правда текст словно диалоги из "Матрицы" или посты уважаемого Эльфана . Еще несколько раз прочитаю и надеюсь, пойму.
Зарегистрирован: Jan 31, 2007 Сообщения: 8714 Откуда: Lancashire
Добавлено: Вт Сен 08, 2009 17:47 Заголовок сообщения:
Frantic_Den, обьяснение программера
Ну а если проще, дыры появились тогда, когда один из юзеров этого ресурса попросил стереть свой профиль :) _________________ ЯEPUБLIC OF MAИCUИIA ЯED AЯMY
Добавлено: Вт Сен 08, 2009 18:08 Заголовок сообщения:
Dred, та не Дим, "В этой теме нет сообщений" было еще до этого, да и на нормальном движке удаление чего-либо, отличного от настроек, НЕ ДОЛЖНО приводить к краху! Да и в конце концов никто ж не заставлял удалять его профиль! Так что юзер никак не при чем. _________________ Champ20ns
Зарегистрирован: Feb 25, 2008 Сообщения: 3360 Откуда: Нижний Новгород
Добавлено: Вт Сен 08, 2009 20:35 Заголовок сообщения:
Frantic_Den писал(а):
DuncanEdwards, не уверен что это так, но приведу как пример: Все что вы видите на этом ресурсе покоится в базе данных, в том или ином виде. Весь контент разбивается на сущности (новость, файл, сообщение, тема, пользователь), у которых есть определенные атрибуты (имя пользователя, мыло, подпись...). У каждого типа контента есть свой уникальный индентификатор в базе (ID), по которому его можно отличить от всех остальных. Возможно, что после удаления одного элемента сущности из базы данных происходит не удаление, как таковое, то есть стирание всей информации из базы о нем, а у данной сущности просто есть атрибут УДАЛЕНО, который описывает состояние элемента и возможные его значения 0 или 1. В таком случае при любой выборке, например, сообщений на форуме нужно проводить проверку установлено ли поле УДАЛЕНО в 1, если да, то данный элемент не принимает участия в выборке, если в 0, то принимает. А в нашей ситуации, скорее всего, при разбивке темы на страницы, работает самый обычный счетчик сообщений, без проверки удалено сообщение или нет, то есть счетчик просто подсчитывает количество ID данной сущности в базе. А уже, когда происходит вывод сообщений для пользователей, то указанная выше проверка срабатывает (то есть движок форума таки проверяет удалено сообщение иль нет) и из-за того, что счетчик всегда насчитывает максимально возможное количество сообщений, которых естественно больше, чем отображаемых, мы и наблюдаем эту дурацкую ошибку.
это как в анекдоте "....папа, а с кем ты сейчас разговаривал?" _________________ первый раз на ОТ и сразу на игре с Ливером и сразу 3-1!!!
Добавлено: Ср Сен 09, 2009 14:55 Заголовок сообщения:
17dufa, ну не я ж программист данного ресурса. Скажем так, я уверен, что починить это можно в течении часа (из которого 59 минут уйдет на изучение кода), это если не спешить совсем. _________________ Champ20ns
Добавлено: Ср Сен 09, 2009 15:13 Заголовок сообщения:
Frantic_Den, ну зато ты модер я ж не предлагаю тебе лично этим заняться. мне больше интересно вообще кто-то собирается этим хоть когда-нить заниматься или надо смириться с этим как с неизбежным злом?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах