Skip to forum content

PunBB.INFO

Forum of amateurs PunBB. Extensions, Styles, Themes, Hooks, Mods and others Solutions

PanBB_1.4.5_Download Russian_1.4.4 Convert_to_PunBB Update_PunBB_to_1.4.4

Post new reply

Post new reply

Compose and post your new reply

You may use: BBCode Images Smilies

All fields with bold label must be completed before the form is submitted.

Required information for guests


Required information
:) :( ;) :jokingly: :D :rofl: :P %) :yes: :cool: :crasy: :scratch: :thumbsup: :shock: :no: :pardon: :ok: :help: :wall: :write: :yahhoo: :blush: :hi: :bravo: :dance: :dontknow: :stop: :cray: :sorry: :-/ :-X :tired: :acute: :music: :bye: :moo:

Topic review (newest first)

136

пока не понятно каким макаром они пропадают, есть только догадки. Копаем, копаем, копаем...

135

Сейчас на этом форуме, вдруг обнаружил несколько сообщений за вчерашний день. Индикации о новых сообщениях не было  PunBB_INFO_ICQ/wall  Раньше такого вроде не случалось, или я просто не обращал внимания...

134

Аааа... Сейчас боюсь мудрить PunBB_INFO_ICQ/bigsmile
А напуркуа такое сделано? PunBB_INFO_ICQ/whipped

133

@kisa, все проще. При разлогине выполняется часть вот этого кода из файла login.php:

// Logout
else if ($action == 'out')
{
   if ($forum_user['is_guest'] || !isset($_GET['id']) || $_GET['id'] != $forum_user['id'])
   {
      header('Location: '.forum_link($forum_url['index']));
      exit;
   }

   // We validate the CSRF token. If it's set in POST and we're at this point, the token is valid.
   // If it's in GET, we need to make sure it's valid.
   if (!isset($_POST['csrf_token']) && (!isset($_GET['csrf_token']) || $_GET['csrf_token'] !== generate_form_token('logout'.$forum_user['id'])))
      csrf_confirm_form();

   ($hook = get_hook('li_logout_selected')) ? eval($hook) : null;

   // Remove user from "users online" list.
   $query = array(
      'DELETE'   => 'online',
      'WHERE'      => 'user_id='.$forum_user['id']
   );

   ($hook = get_hook('li_logout_qr_delete_online_user')) ? eval($hook) : null;
   $forum_db->query_build($query) or error(__FILE__, __LINE__);

   // Update last_visit (make sure there's something to update it with)
   if (isset($forum_user['logged']))
   {
      $query = array(
         'UPDATE'   => 'users',
         'SET'      => 'last_visit='.$forum_user['logged'],
         'WHERE'      => 'id='.$forum_user['id']
      );

      ($hook = get_hook('li_logout_qr_update_last_visit')) ? eval($hook) : null;
      $forum_db->query_build($query) or error(__FILE__, __LINE__);
   }

   $expire = time() + 1209600;
   forum_setcookie($cookie_name, base64_encode('1|'.random_key(8, false, true).'|'.$expire.'|'.random_key(8, false, true)), $expire);

   // Reset tracked topics
   set_tracked_topics(null);

   ($hook = get_hook('li_logout_pre_redirect')) ? eval($hook) : null;

   redirect(forum_link($forum_url['index']), $lang_login['Logout redirect']);
}

Почти в конце выполняется эта функция

   // Reset tracked topics
   set_tracked_topics(null);

она то и сбрасывает по ходу. Попробуй ее закоментировать и выйти...

132

Оно не в куках случайно?
Пока из форума не выходишь - все более-менее красиво. Я с трёх компов, все тоже уходят в спячку обычно.

131

В любом случае, данное расширение очень помогает тем, кто заходит на форум с разных браузеров или устройств. Помню, раньше приходилось по десять раз просматривать уже прочитанные сообщения.  PunBB_INFO_ICQ/whipped

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

У меня компом иногда пользуется жена, а там браузер с форумом постоянно открыт, так как ноут всегда в спящем режиме. Вряд ли темы помечаются просто из за того, что на форум вошли одновременно с двух браузеров... PunBB_INFO_ICQ/pardon

130

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

129

PunBB wrote:

свернула мой мозг в смятку

Да вроде все понятно... если "жарим" идентификатор самостоятельно, то его нужно дописать в базу или вообще вместо IP и собственно по нему и банить как это делается с баном по IP

128

@kirpich, эта статейка свернула мой мозг в смятку  PunBB_INFO_ICQ/crasy

не знаю, поднастроил по максимуму Fancy Stop Spam, пока полет нормальный.

---------------------------------

kisa wrote:

Продолжаются жалобы на потерю нечитанных тем

@kisa, согласен, жалуюсь. Вот буквально недавно пропустил несколько сообщений  PunBB_INFO_ICQ/whipped


---------------------------------

Мне удалось обнаружить, что после разлогинивания пользователя выполняется сброс информации о непрочитанных сообщениях.
Но не только в этом причина. За последние 3 дня на этом форуме не выходил из системы, а сообщения пометились как прочитанные  PunBB_INFO_ICQ/dontknow


---------------------------------

Есть подозрение, что это может быть из за расширения, которое выполняет аякс запросы, когда длительное время открыт браузер...
Но как он может помечать сообщения прочитанными  PunBB_INFO_ICQ/scratch вот это загадка

127

Продолжаются жалобы на потерю нечитанных тем....

126

Всем стоять-бояться!   PunBB_INFO_ICQ/bigsmile
Есть идея - нет икеи.. Короче, я не знаю как это сделать, но есть идея по внедрению особых и глубоко извращенных видов бана на форуме.  Идея заключается в том, что у каждого юзера есть некий ID в системе гугла (смотрите счетчики-онлайн) Вотпо этому самому ID и предлагаю выпилить фигурным лобзиком и банить. Вопрос у меня - как его выдернуть у юзера?  Гугл свои скрипты вряд ли отдает, а этот ID  в кукисах походу висит и как-то привязывается к конкретному браузеру. По крайней мере, рекламные сети эти ID "слизывают" как-то и подсовывают рекламу на основе интересов.
Или есть еще какие-то специфические варианты в мировой практике?

---------------------------------

А вот.... если поискать по FingerprintJS  можно немного понять о чем я...

125

Извращенцы  PunBB_INFO_ICQ/wall

124

PunBB_INFO_ICQ/shock  PunBB_INFO_ICQ/shock  PunBB_INFO_ICQ/shock

'ORDER BY'   => 'pposted DESC'

Как оно работало не понятно мне  PunBB_INFO_ICQ/wall

---------------------------------

Вот полностью эта область show_user_posts:

      case 'show_user_posts':
         $query = array(
            'SELECT'   => 'p.id AS pid, p.poster AS pposter, p.posted AS pposted, p.poster_id, p.message, p.hide_smilies, t.id AS tid, t.poster, t.subject, t.first_post_id, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.forum_id, f.forum_name',
            'FROM'      => 'posts AS p',
            'JOINS'      => array(
               array(
                  'INNER JOIN'   => 'topics AS t',
                  'ON'         => 't.id=p.topic_id'
               ),
               array(
                  'INNER JOIN'   => 'forums AS f',
                  'ON'         => 'f.id=t.forum_id'
               ),
               array(
                  'LEFT JOIN'      => 'forum_perms AS fp',
                  'ON'         => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
               )
            ),
            'WHERE'      => '(fp.read_forum IS NULL OR fp.read_forum=1) AND p.poster_id='.$value,
            'ORDER BY'   => 'pposted DESC'
         );
         $url_type = $forum_url['search_user_posts'];
         $search_id = $value;
         $show_as = 'posts';
         ($hook = get_hook('sf_fn_generate_action_search_query_qr_get_user_posts')) ? eval($hook) : null;
         break

Вот, смотри сюда:

SELECT'   => 'p.id AS pid, p.poster AS pposter

...видно так было задумано  PunBB_INFO_ICQ/pardon

123

@PunBB,  see line 534 in search_functions.php  PunBB_INFO_ICQ/shock

122

Гениально PunBB_INFO_ICQ/thumbsup  как доползу до ноута, гляну и внесу в 1.4.6.

121

@PunBB, правки ошибочных запросов, найденных в 1.4.4


sqlchanges.zip  0.8   (8)

120

@sempai, спасибо, что написал об этом. Теперь, кто бы мог просмотреть все файлы движка и сверить все одиночные запросы, то есть везде ли присутствует префикс, когда он определен для данной таблицы.

---------------------------------

То есть, нужно выполнить простую работу с помощью поиска в файле следующего ключа:

'FROM'

Вот на примере таблицы с периксом p. для постов:

      'FROM'      => 'posts AS p',

соответственно во всех значениях выборки колонок должны стоять префиксы:

    'SELECT'   => 'p.id, p.poster, p.message, p.hide_smilies, p.posted',

Если префиксы не проставлены в некоторых запросах, например, как уже было показано выше:

      'WHERE'      => 'topic_id='.$tid,
      'ORDER BY'   => 'id DESC',

то следует выписать строки и сообщить в эту тему, пока еще готовим выпуск 1.4.6.

Зараннее благодарен за любые усилия помочь проекту.  PunBB_INFO_ICQ/thumbsup

119

@PunBB, в других местах не проверял, а об это конкретно споткнулся, при написании расширения.
Явный брак создателей движка!

118

@sempai, а в других запросах используется подобный префикс?

Проследив запросы в нескольких файлах, понял что политика PunBB такова:
Если используется префикс для таблицы, то он должен использоваться во всех запросах.
Если не используется для таблицы, то не используется и для запроса.

Запрос принят. А так же обнаружено подобное в строках 258 и 557

------------------------------

В общем нужно теперь весь движок перелопатить и просмотреть все файлы где встречаются подобные запросы  PunBB_INFO_ICQ/whipped  PunBB_INFO_ICQ/whipped  PunBB_INFO_ICQ/whipped

117

В post.php, строки 567 - 568, находится следующий код:

'WHERE'      => 'topic_id='.$tid,
'ORDER BY'   => 'id DESC',

Запрос целиком:

// Get posts to display in topic review
   $query = array(
      'SELECT'   => 'p.id, p.poster, p.message, p.hide_smilies, p.posted',
      'FROM'      => 'posts AS p',
      'WHERE'      => 'topic_id='.$tid,
      'ORDER BY'   => 'id DESC',
      'LIMIT'      => $forum_config['o_topic_review']
   );

   ($hook = get_hook('po_topic_review_qr_get_topic_review_posts')) ? eval($hook) : null;
   $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);

Если расширить запрос, используя выше указанный хук po_topic_review_qr_get_topic_review_posts, добавить какую либо таблицу (использовать JOIN), получим дубликаты столбцов id и topic_id. На выходе ошибка PHP.

Для исправления, нужно добавить в эти строки присвоенный идентификатор, вот так:

'WHERE'      => 'p.topic_id='.$tid,
'ORDER BY'   => 'p.id DESC',

Login form

Запомнить меня

Generated in 0.108 seconds (93% PHP - 7% DB) with 13 queries