Поставил, на чистый форум, вроде работает. Форум правда не совсем чистый, стоит
adv_posts_merging_2.1.2.zip
attach_mod_2313.zip, но выключен.
mod-merge.zip
Sploit in Avatar fix.txt
Первое что помешало нормальной работе так это ошибка, которая отображалась только в IE, в Opera - всё нормально:
Код: Выделить всё
Warning: mysql_fetch_array(): 38 is not a valid MySQL result resource in /home/xxx/xxx/public_html/xxx/db/mysql4.php on line 214
Warning: Cannot modify header information - headers already sent by (output started at /home/xxx/xxx/public_html/xxx/db/mysql4.php:214) in /home/xxx/xxx/public_html/xxx/includes/page_header.php on line 480
Warning: Cannot modify header information - headers already sent by (output started at /home/xxx/xxx/public_html/xxx/db/mysql4.php:214) in /home/xxx/xxx/public_html/xxx/includes/page_header.php on line 482
Warning: Cannot modify header information - headers already sent by (output started at /home/xxx/xxx/public_html/xxx/db/mysql4.php:214) in /home/xxx/xxx/public_html/xxx/includes/page_header.php on line 483
Там где xxx - это мои идентификатор у хостера и мой домен 3 уровня тестовый, вам их знать не зачем.
Решилось вот этим советом
http://www.phpbb.com/phpBB/viewtopic.ph ... 48#1090348
Это то или у меня мистика твориться?
Дальше, при установке есть два места по которым хотелось бы получить консультацию.
Код: Выделить всё
#-----[ OPEN ]------------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------------
#
if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_GET_VARS['sid']) )
{
$session_id = isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) ? $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid'] : $HTTP_GET_VARS['sid'];
if ( $session_id )
{
$sql = "SELECT p.post_id
FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id
AND p.topic_id = $topic_id
AND p.post_time >= u.user_lastvisit
ORDER BY p.post_time ASC
LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql);
}
if ( !($row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit');
}
$post_id = $row['post_id'];
if (isset($HTTP_GET_VARS['sid']))
{
redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id");
}
else
{
redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id");
}
}
}
redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
#
#-----[ REPLACE WITH ]----------------------------------------
#
//-- mod : keep unread -----------------------------------------------------------------------------
//-- delete
// if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_GET_VARS['sid']) )
// {
// $session_id = isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) ? $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid'] : $HTTP_GET_VARS['sid'];
//
// if ( $session_id )
// {
// $sql = "SELECT p.post_id
// FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
// WHERE s.session_id = '$session_id'
// AND u.user_id = s.session_user_id
// AND p.topic_id = $topic_id
// AND p.post_time >= u.user_lastvisit
// ORDER BY p.post_time ASC
// LIMIT 1";
// if ( !($result = $db->sql_query($sql)) )
// {
// message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql);
// }
//
// if ( !($row = $db->sql_fetchrow($result)) )
// {
// message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit');
// }
//
// $post_id = $row['post_id'];
//
// if (isset($HTTP_GET_VARS['sid']))
// {
// redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id");
// }
// else
// {
// redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id");
// }
// }
// }
//
// redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
//-- add
// read the first unread post in this topic
$sql = "SELECT p.post_id, t.topic_last_post_id
FROM (" . TOPICS_TABLE . " t
LEFT JOIN " . POSTS_TABLE . " p ON p.topic_id = t.topic_id AND p.post_time > $topic_last_read)
WHERE t.topic_id = $topic_id
AND t.topic_moved_id = 0
ORDER BY p.post_time";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql);
}
if ( !$row = $db->sql_fetchrow($result) )
{
message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit');
}
$post_id = empty($row['post_id']) ? $row['topic_last_post_id'] : $row['post_id'];
redirect(append_sid("./viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id", true));
//-- fin mod : keep unread -------------------------------------------------------------------------
Но на самом деле в этом файле присутствует
Код: Выделить всё
if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_GET_VARS['sid']) )
{
$session_id = isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) ? $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid'] : $HTTP_GET_VARS['sid'];
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
$session_id = '';
}
if ( $session_id )
{
$sql = "SELECT p.post_id
FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id
AND p.topic_id = $topic_id
AND p.post_time >= u.user_lastvisit
ORDER BY p.post_time ASC
LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql);
}
if ( !($row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit');
}
$post_id = $row['post_id'];
if (isset($HTTP_GET_VARS['sid']))
{
redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id");
}
else
{
redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id");
}
}
}
redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
Я заменил целиком, но что это может повлиять и должно ли? Как я понимаю в этой строке
Код: Выделить всё
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
проверяется sid на наличие левых символов?
И уже указанное выше:
Код: Выделить всё
#-----[ OPEN ]------------------------------------------------
#
index.php
#-----[ FIND ]------------------------------------------------
#
$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
}
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : keep unread -----------------------------------------------------------------------------
//-- add
// update the unread topics from the list readed
$board_config['tracking_unreads'] = $new_unreads;
// save the cookies
write_cookies($userdata);
//-- fin mod : keep unread -------------------------------------------------------------------------
Но на самом деле кусок выглядит как
Код: Выделить всё
$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
}
$db->sql_freeresult($result);
}
Заменил на
Код: Выделить всё
$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
}
}
$db->sql_freeresult($result);
Всё нормально, но не может ли это повлиять на что либо в дальнейшем, или опять же у меня это работает только пока, а потом накроется из-за этого?
Добавлено спустя 3 часа 5 минут 34 секунды:
И ещё. Если человек на форуме и в это время кто-то отправит сообщение, тема помечается как непрочитанная, но если человек отлогиниться и подлогиниться, то эта тема не помечена как непрочитанная, а остальные темы нормально сохраняются.
Как это побороть ни у кого идей нет?
Добавлено спустя 53 секунды:
И с чем это связано, из-за чего происходит?