--- phpBB2/includes/usercp_register.php 2005-12-30 11:38:19.000000000 +0100 +++ phpBB2/includes/usercp_register.php 2006-02-02 15:58:56.071835000 +0100 @@ -942,30 +942,15 @@ $confirm_image = ''; if (!empty($board_config['enable_confirm']) && $mode == 'register') { - $sql = 'SELECT session_id - FROM ' . SESSIONS_TABLE; - if (!($result = $db->sql_query($sql))) - { - message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql); - } - - if ($row = $db->sql_fetchrow($result)) + $sql = 'DELETE ' . CONFIRM_TABLE; + $sql .= ' FROM ' . CONFIRM_TABLE; + $sql .= ' LEFT JOIN ' . SESSIONS_TABLE .' ON '; + $sql .= SESSIONS_TABLE .'.session_id = '. CONFIRM_TABLE .'.session_id'; + $sql .= ' WHERE ' . SESSIONS_TABLE .'.session_id IS NULL'; + if (!$db->sql_query($sql)) { - $confirm_sql = ''; - do - { - $confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'"; - } - while ($row = $db->sql_fetchrow($result)); - - $sql = 'DELETE FROM ' . CONFIRM_TABLE . " - WHERE session_id NOT IN ($confirm_sql)"; - if (!$db->sql_query($sql)) - { - message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql); - } + message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql); } - $db->sql_freeresult($result); $sql = 'SELECT COUNT(session_id) AS attempts FROM ' . CONFIRM_TABLE . " --- phpBB2/search.php 2005-12-30 11:38:20.000000000 +0100 +++ phpBB2/search.php 2006-02-02 15:59:37.891835000 +0100 @@ -632,25 +632,14 @@ // Finish building query (for all combinations) // and run it ... // - $sql = "SELECT session_id - FROM " . SESSIONS_TABLE; - if ( $result = $db->sql_query($sql) ) + $sql = "DELETE " . SEARCH_TABLE; + $sql .= " FROM " . SEARCH_TABLE; + $sql .= " LEFT JOIN " . SESSIONS_TABLE . " ON "; + $sql .= SESSIONS_TABLE . ".session_id = ". SEARCH_TABLE . ".session_id"; + $sql .= " WHERE ". SESSIONS_TABLE . ".session_id IS NULL"; + if ( !$result = $db->sql_query($sql) ) { - $delete_search_ids = array(); - while( $row = $db->sql_fetchrow($result) ) - { - $delete_search_ids[] = "'" . $row['session_id'] . "'"; - } - - if ( count($delete_search_ids) ) - { - $sql = "DELETE FROM " . SEARCH_TABLE . " - WHERE session_id NOT IN (" . implode(", ", $delete_search_ids) . ")"; - if ( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql); - } - } + message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql); } //