diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index c00406512b..d9f8256483 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2293,8 +2293,10 @@ function login_forum_box($forum_data) if ($password) { // Remove expired authorised sessions - $sql = 'SELECT session_id - FROM ' . SESSIONS_TABLE; + $sql = 'SELECT f.session_id + FROM ' . FORUMS_ACCESS_TABLE . ' f + LEFT JOIN ' . SESSIONS_TABLE . ' s ON (f.session_id = s.session_id) + WHERE s.session_id IS NULL'; $result = $db->sql_query($sql); if ($row = $db->sql_fetchrow($result)) @@ -2308,7 +2310,7 @@ function login_forum_box($forum_data) // Remove expired sessions $sql = 'DELETE FROM ' . FORUMS_ACCESS_TABLE . ' - WHERE ' . $db->sql_in_set('session_id', $sql_in, true); + WHERE ' . $db->sql_in_set('session_id', $sql_in); $db->sql_query($sql); } $db->sql_freeresult($result); diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index b62ee04318..2e22cf5519 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -427,8 +427,10 @@ class ucp_register $str = ''; if (!$change_lang) { - $sql = 'SELECT session_id - FROM ' . SESSIONS_TABLE; + $sql = 'SELECT c.session_id + FROM ' . CONFIRM_TABLE . ' c + LEFT JOIN ' . SESSIONS_TABLE . ' s ON (c.session_id = s.session_id) + WHERE s.session_id IS NULL'; $result = $db->sql_query($sql); if ($row = $db->sql_fetchrow($result)) @@ -443,7 +445,7 @@ class ucp_register if (sizeof($sql_in)) { $sql = 'DELETE FROM ' . CONFIRM_TABLE . ' - WHERE ' . $db->sql_in_set('session_id', $sql_in, true) . ' + WHERE ' . $db->sql_in_set('session_id', $sql_in) . ' AND confirm_type = ' . CONFIRM_REG; $db->sql_query($sql); }