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; }
/** * 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; }
*/ $location['lang'] = $forum_data[$topic_title['forum_id']] . ' » ' . $topic_title['topic_title']; $location['url'] = CMS_PAGE_VIEWTOPIC . '?' . POST_FORUM_URL . '=' . $topic_title['forum_id'] . '&' . 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']));