diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index de1f7064e8..d293157bd7 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -35,8 +35,9 @@ function set_config($config_name, $config_value, $is_dynamic = FALSE) } else { - $db->sql_query('DELETE FROM ' . CONFIG_TABLE . " - WHERE config_name = '" . $config_name . "'"); + $sql = 'DELETE FROM ' . CONFIG_TABLE . " + WHERE config_name = '$config_name'"; + $db->sql_query($sql); $sql = 'INSERT INTO ' . CONFIG_TABLE . " (config_name, config_value) VALUES ('$config_name', '" . $db->sql_escape($config_value) . "')"; diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index d65fe44c19..c9a69b1349 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -55,8 +55,8 @@ function display_forums($root_data = '', $display_moderators = TRUE) $lastread_select = ''; $sql_lastread = ''; - $tracking_forums = (isset($_COOKIE[$config['cookie_name'] . '_f'])) ? unserialize($_COOKIE[$config['cookie_name'] . '_f']) : array(); - $tracking_topics = (isset($_COOKIE[$config['cookie_name'] . '_t'])) ? unserialize($_COOKIE[$config['cookie_name'] . '_t']) : array(); + $tracking_forums = (isset($_COOKIE[$config['cookie_name'] . '_f'])) ? unserialize(stripslashes($_COOKIE[$config['cookie_name'] . '_f'])) : array(); + $tracking_topics = (isset($_COOKIE[$config['cookie_name'] . '_t'])) ? unserialize(stripslashes($_COOKIE[$config['cookie_name'] . '_t'])) : array(); } $sql = "SELECT f.* $lastread_select diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index 7ae621ed6e..24284032ea 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -1173,7 +1173,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_ // Mark this topic as read and posted to. $mark_mode = ($mode == 'post' || $mode == 'reply' || $mode == 'quote') ? 'post' : 'topic'; - markread($mark_mode, $post_data['forum_id'], $post_data['topic_id'], $post_data['post_id']); + markread($mark_mode, $post_data['forum_id'], $post_data['topic_id'], $post_data['post_time']); $db->sql_transaction('commit'); diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php index 25c88712fd..12b72b5bae 100644 --- a/phpBB/viewforum.php +++ b/phpBB/viewforum.php @@ -519,7 +519,7 @@ if ($forum_data['forum_type'] == FORUM_POST) if ($config['load_db_lastread']) { - if ($row['mark_time'] > $row['topic_last_post_time'] && !isset($update_forum)) + if ($row['mark_time'] >= $row['topic_last_post_time'] && !isset($update_forum)) { $update_forum = true; } @@ -530,7 +530,7 @@ if ($forum_data['forum_type'] == FORUM_POST) } else { - if ($tracking_topics[$topic_id] > $row['topic_last_post_time'] && !isset($update_forum)) + if ($tracking_topics[$topic_id] >= $row['topic_last_post_time'] && !isset($update_forum)) { $update_forum = true; } @@ -549,7 +549,7 @@ if ($forum_data['forum_type'] == FORUM_POST) // after reading a topic if ($user->data['user_id'] != ANONYMOUS && $update_forum) { - markread('mark', $forum_id); + markread('mark', $forum_id, false, time()); } }