Example #1
0
function rss_session_begin($user_id, $user_ip)
{
    global $db, $cache, $config, $user;
    $page_array = extract_current_page(IP_ROOT_PATH);
    $forum_id = request_var(POST_FORUM_URL, 0);
    $forum_id = $forum_id < 0 ? 0 : $forum_id;
    $topic_id = request_var(POST_TOPIC_URL, 0);
    $topic_id = $topic_id < 0 ? 0 : $topic_id;
    if (function_exists('mysql_real_escape_string')) {
        $page_id = @mysql_real_escape_string(substr($page_array['page_full'], 0, 254));
    } else {
        $page_id = substr(str_replace('\'', '%27', $page_array['page_full']), 0, 254);
    }
    $user_id = (int) $user_id;
    $password = md5($_SERVER['PHP_AUTH_PW']);
    $last_visit = 0;
    $current_time = time();
    $expiry_time = $current_time - $config['session_length'];
    $sql = "SELECT *\n\t\tFROM " . USERS_TABLE . "\n\t\tWHERE user_id = " . $user_id;
    $db->sql_return_on_error(true);
    $result = $db->sql_query($sql);
    $db->sql_return_on_error(false);
    if (!$result) {
        ExitWithHeader('500 Internal Server Error', 'Could not obtain lastvisit data from user table');
    }
    $user->data = $db->sql_fetchrow($result);
    if (isset($user->data['user_level']) && $user->data['user_level'] == JUNIOR_ADMIN) {
        $user->data['user_level'] = !defined('IN_ADMIN') && !defined('IN_CMS') ? ADMIN : MOD;
    }
    if ($user_id != ANONYMOUS && (empty($user->data) || $password != $user->data['user_password'])) {
        ExitWithHeader('500 Internal Server Error', 'Error while create session');
    }
    $login = $user_id != ANONYMOUS ? 1 : 0;
    $is_banned = $user->check_ban($user_id, $user->ip, $user->data['user_email'], true);
    if ($is_banned) {
        ExitWithHeader("403 Forbidden", "You have been banned");
    }
    list($sec, $usec) = explode(' ', microtime());
    mt_srand((double) $sec + (double) $usec * 100000);
    $session_id = md5(uniqid(mt_rand(), true));
    $sql = "INSERT INTO " . SESSIONS_TABLE . "\n\t\t(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_forum_id, session_topic_id, session_logged_in, session_admin)\n\t\tVALUES ('" . $db->sql_escape($session_id) . "', {$user_id}, {$current_time}, {$current_time}, '" . $db->sql_escape($user_ip) . "', '" . $db->sql_escape($page_id) . "', '" . $db->sql_escape($forum_id) . "', '" . $db->sql_escape($topic_id) . "', {$login}, 0)";
    $db->sql_return_on_error(true);
    $result = $db->sql_query($sql);
    $db->sql_return_on_error(false);
    if (!$result) {
        ExitWithHeader("500 Internal Server Error", "Error creating new session");
    }
    $last_visit = $user->data['user_session_time'] > 0 ? $user->data['user_session_time'] : $current_time;
    $sql = "UPDATE " . USERS_TABLE . " SET user_session_time = {$current_time}, user_session_page = '{$page_id}', user_lastvisit = {$last_visit} ";
    if (LV_MOD_INSTALLED) {
        $sql .= ", user_totallogon = (user_totallogon + 1)";
    }
    $sql .= " WHERE user_id = {$user_id}";
    $db->sql_return_on_error(true);
    $result = $db->sql_query($sql);
    $db->sql_return_on_error(false);
    if (!$result) {
        ExitWithHeader("500 Internal Server Error", 'Error updating last visit time');
    }
    $user->data['user_lastvisit'] = $last_visit;
    $user->data['session_id'] = $session_id;
    $user->data['session_ip'] = $user_ip;
    $user->data['session_user_id'] = $user_id;
    $user->data['session_logged_in'] = $login;
    $user->data['session_page'] = $page_id;
    $user->data['session_forum_id'] = $forum_id;
    $user->data['session_topic_id'] = $topic_id;
    $user->data['session_start'] = $current_time;
    $user->data['session_time'] = $current_time;
    $user->data['session_admin'] = 0;
    $user->data['session_key'] = '';
    $SID = 'sid=' . $session_id;
    define('TEMP_SESSION', true);
    // Mighty Gorgon - BOT SESSION - BEGIN
    $user->data['is_bot'] = false;
    if ($user->data['user_id'] != ANONYMOUS) {
        $user->data['bot_id'] = false;
    } else {
        $bot_name_tmp = bots_parse($user_ip, $config['bots_color'], $user_agent, true);
        $user->data['bot_id'] = $bot_name_tmp['name'];
        if ($user->data['bot_id'] !== false) {
            $user->data['is_bot'] = true;
            bots_table_update($bot_name_tmp['id']);
        }
    }
    // Mighty Gorgon - BOT SESSION - END
    return $user->data;
}
Example #2
0
 /**
  * Bots check...
  */
 function bots_process()
 {
     global $config;
     if (!empty($this->data)) {
         $this->data['is_bot'] = false;
         $this->data['bot_id'] = false;
         if ($this->data['user_id'] == ANONYMOUS) {
             $bot_name_tmp = bots_parse($this->ip, $config['bots_color'], $this->browser, true);
             $this->data['bot_id'] = $bot_name_tmp['name'];
             if ($this->data['bot_id'] !== false) {
                 $this->data['is_bot'] = true;
                 bots_table_update($bot_name_tmp['id']);
             }
         }
     }
 }
            } else {
                $logged_hidden_online++;
                $user_online_link = '<em>' . $user_online_link . '</em>';
            }
            if ($row['user_allow_viewonline'] || $user->data['user_level'] == ADMIN || $user->data['user_id'] == $row['user_id']) {
                $online_userlist .= ($online_userlist != '' ? ', ' : '') . $user_online_link;
            }
        }
        $prev_user_id = $row['user_id'];
    } else {
        // Skip multiple sessions for one user
        if (!empty($row['session_ip']) && !in_array($row['session_ip'], $session_ip_array)) {
            $session_ip_array[] = $row['session_ip'];
            $guests_online++;
            // MG BOTS Parsing - BEGIN
            $bot_name_tmp = bots_parse($row['session_ip'], $config['bots_color'], $row['session_browser']);
            if ($bot_name_tmp['name'] != false) {
                if (!in_array($bot_name_tmp['name'], $tmp_bots_array)) {
                    $tmp_bots_array[] = $bot_name_tmp['name'];
                    $online_botlist .= $online_botlist != '' ? ', ' . $bot_name_tmp['name'] : $bot_name_tmp['name'];
                }
            }
            // MG BOTS Parsing - END
        }
    }
}
if (empty($online_botlist)) {
    $online_botlist = '';
} else {
    $online_botlist = (isset($forum_id) ? $lang['Bots_browsing_forum'] : $lang['Search_Engines']) . ' ' . $online_botlist;
}
Example #4
0
             */
             $location['lang'] = $forum_data[$topic_title['forum_id']] . '&nbsp;&raquo;&nbsp;' . $topic_title['topic_title'];
             $location['url'] = CMS_PAGE_VIEWTOPIC . '?' . POST_FORUM_URL . '=' . $topic_title['forum_id'] . '&amp;' . POST_TOPIC_URL . '=' . $topic_id;
         } else {
             if (!empty($forum_id)) {
                 $location['lang'] = $forum_data[$forum_id];
                 $location['url'] = CMS_PAGE_VIEWFORUM . '?' . POST_FORUM_URL . '=' . $forum_id;
             } else {
                 $location = get_online_page($onlinerow_guest[$i]['session_page']);
             }
         }
         $location['url'] = append_sid(IP_ROOT_PATH . $location['url']);
         $row_class = $guest_users % 2 ? $theme['td_class1'] : $theme['td_class2'];
         // MG BOTS Parsing - BEGIN
         $guest_ip = $onlinerow_guest[$i]['session_ip'];
         $bot_name_tmp = bots_parse($onlinerow_guest[$i]['session_ip'], $config['bots_color']);
         if ($bot_name_tmp['name'] != false) {
             $name_guest = $bot_name_tmp['name'];
         } else {
             $name_guest = '<b>' . $lang['Guest'] . '</b>';
         }
         // MG BOTS Parsing - END
         $template->assign_block_vars('guest_user_row', array('ROW_CLASS' => $row_class, 'USERNAME' => $name_guest, 'STARTED' => create_date($config['default_dateformat'], $onlinerow_guest[$i]['session_start'], $config['board_timezone']), 'LASTUPDATE' => create_date($config['default_dateformat'], $onlinerow_guest[$i]['session_time'], $config['board_timezone']), 'FORUM_LOCATION' => $location['lang'], 'IP_ADDRESS' => $guest_ip, 'U_WHOIS_IP' => 'http://whois.sc/' . htmlspecialchars(urlencode($guest_ip)), 'U_FORUM_LOCATION' => $location['url']));
     }
 } else {
     $template->assign_vars(array('L_NO_GUESTS_BROWSING' => $lang['No_users_browsing']));
 }
 jr_admin_make_info_box();
 $version_info = '<p style="color:green">' . $lang['Version_up_to_date'] . '</p>';
 $version_info .= '<p>' . $lang['Mailing_list_subscribe_reminder'] . '</p>';
 $template->assign_vars(array('VERSION_INFO' => $version_info, 'L_VERSION_INFORMATION' => $lang['Version_information']));