All pastes #959389 Raw Edit

Unnamed

public text v1 · immutable
#959389 ·published 2008-03-27 12:34 UTC
rendered paste body
    /**
     * Get a list of the valid session identifiers.
     *
     * @return array  A list of valid session identifiers.
     */
    function getSessionIDs()
    {
        /* Make sure we have a valid database connection. */
        $this->_connect();

        /* Session timeout, don't rely on garbage collection */
        $timeout = time() - ini_get('session.gc_maxlifetime');

        $query = sprintf('(SELECT session_id FROM horde_sessionhandler_0) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_1) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_2) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_3) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_4) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_5) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_6) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_7) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_8) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_9) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_a) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_b) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_c) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_d) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_e) UNION ' .
                         '(SELECT session_id FROM horde_sessionhandler_f)');

        /* Log the query at a DEBUG log level. */
        Horde::logMessage(sprintf('SQL Query by SessionHandler_mysql::getSessionIDs(): query = "%s"', $query),
                          __FILE__, __LINE__, PEAR_LOG_DEBUG);

        $result = @mysql_query($query, $this->_db);
        if (!$result) {
            Horde::logMessage('Error getting session IDs: ' . mysql_error($this->_db),
                              __FILE__, __LINE__, PEAR_LOG_ERR);
            return false;
        }

        $sessions = array();

        while ($row = mysql_fetch_row($result))
            $sessions[] = $row[0];

        return $sessions;
    }