Exemple #1
0
<?php

//login.php v5.0.5
setlocale(LC_ALL, 'ru_RU');
require_once 'config.php';
require_once 'lib5.php';
require_once OLIB_PATH . '/class.session.php';
require_once OLIB_PATH . '/class.cache.php';
define('USER_NAME', 'REMOTE_USER');
$tpl =& initFastTemplate();
$cache = new Cache();
$ses = new Session(true);
$tpl->assign('MESSAGE', $ses->msg());
if ($ses->url()) {
    $target_url = $ses->url();
} else {
    $target_url = '/';
}
if (isset($_POST['USERNAME']) || isset($_SERVER[USER_NAME])) {
    $ses->dispose('uid');
    $usr = new User5(isset($_POST['USERNAME']) ? $_POST['USERNAME'] : $_SERVER[USER_NAME]);
    if ($usr->count > 0) {
        if (isset($_SERVER[USER_NAME]) || $_POST['PASS'] && strlen($_POST['PASS']) > 0 && $usr->checkPass($_POST['PASS'])) {
            $ses->uid($usr->samaccountname);
            $ses->login($usr->samaccountname);
            $ses->valueOf('cn', $usr->cn);
            $tar = array();
            if ($usr->directreports) {
                $tar = $usr->fullName2account($usr->directreports);
            } else {
                $tar[] = $usr->samaccountname;
$prev_user_ids = array();
$prev_session_ips = array();
if (defined("GET_USER_ONLINE") && ($config['display_whosonline'] == 1 || $user_info['user_level'] == ADMIN)) {
    $time_out = time() - 300;
    $sql = "SELECT s.session_user_id, s.session_lastaction, s.session_ip" . get_user_table_field(", u.", "user_id") . get_user_table_field(", u.", "user_level") . get_user_table_field(", u.", "user_name") . get_user_table_field(", u.", "user_invisible") . "\n      FROM " . SESSIONS_TABLE . " s\n      LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = s.session_user_id)\n      WHERE s.session_lastaction >= {$time_out}\n      ORDER BY " . get_user_table_field("u.", "user_id") . " ASC, s.session_ip ASC";
    $result = $site_db->query($sql);
    while ($row = $site_db->fetch_array($result)) {
        if ($row['session_user_id'] != GUEST && (isset($row[$user_table_fields['user_id']]) && $row[$user_table_fields['user_id']] != GUEST)) {
            if (!isset($prev_user_ids[$row['session_user_id']])) {
                $is_invisible = isset($row[$user_table_fields['user_invisible']]) && $row[$user_table_fields['user_invisible']] == 1 ? 1 : 0;
                $invisibleuser = $is_invisible ? "*" : "";
                $username = isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1 ? sprintf("<b>%s</b>", $row[$user_table_fields['user_name']]) : $row[$user_table_fields['user_name']];
                if (!$is_invisible || $user_info['user_level'] == ADMIN) {
                    $user_online_list .= $user_online_list != "" ? ", " : "";
                    $user_profile_link = !empty($url_show_profile) ? preg_replace("/{user_id}/", $row['session_user_id'], $url_show_profile) : ROOT_PATH . "member.php?action=showprofile&amp;" . URL_USER_ID . "=" . $row['session_user_id'];
                    $user_online_list .= "<a href=\"" . $site_sess->url($user_profile_link) . "\">" . $username . "</a>" . $invisibleuser;
                }
                !$is_invisible ? $num_visible_online++ : $num_invisible_online++;
                $num_registered_online++;
            }
            $prev_user_ids[$row['session_user_id']] = 1;
        } else {
            if (!isset($prev_session_ips[$row['session_ip']])) {
                $num_guests_online++;
            }
        }
        $prev_session_ips[$row['session_ip']] = 1;
    }
    $num_total_online = $num_registered_online + $num_guests_online;
    //$num_invisible_online = $num_registered_online - $num_visible_online;
    $site_template->register_vars(array("num_total_online" => $num_total_online, "num_invisible_online" => $num_invisible_online, "num_registered_online" => $num_registered_online, "num_guests_online" => $num_guests_online, "user_online_list" => $user_online_list, "lang_user_online" => str_replace('{num_total_online}', $num_total_online, $lang['user_online']), "lang_user_online_detail" => str_replace(array('{num_registered_online}', '{num_invisible_online}', '{num_guests_online}'), array($num_registered_online, $num_invisible_online, $num_guests_online), $lang['user_online_detail'])));
$prev_user_ids = array();
$prev_session_ips = array();
if (defined("GET_USER_ONLINE") && ($config['display_whosonline'] == 1 || $user_info['user_level'] == ADMIN)) {
    $time_out = time() - 300;
    $sql = "SELECT s.session_user_id, s.session_lastaction, s.session_ip" . get_user_table_field(", u.", "user_id") . get_user_table_field(", u.", "user_level") . get_user_table_field(", u.", "user_name") . get_user_table_field(", u.", "user_invisible") . "\n      FROM " . SESSIONS_TABLE . " s\n      LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = s.session_user_id)\n      WHERE s.session_lastaction >= {$time_out}\n      ORDER BY " . get_user_table_field("u.", "user_id") . " ASC, s.session_ip ASC";
    $result = $site_db->query($sql);
    while ($row = $site_db->fetch_array($result)) {
        if ($row['session_user_id'] != GUEST && (isset($row[$user_table_fields['user_id']]) && $row[$user_table_fields['user_id']] != GUEST)) {
            if (!isset($prev_user_ids[$row['session_user_id']])) {
                $is_invisible = isset($row[$user_table_fields['user_invisible']]) && $row[$user_table_fields['user_invisible']] == 1 ? 1 : 0;
                $invisibleuser = $is_invisible ? "*" : "";
                $username = isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1 ? sprintf("<b>%s</b>", $row[$user_table_fields['user_name']]) : $row[$user_table_fields['user_name']];
                if (!$is_invisible || $user_info['user_level'] == ADMIN) {
                    $user_online_list .= $user_online_list != "" ? ", " : "";
                    $user_profile_link = !empty($url_show_profile) ? preg_replace("/{user_id}/", $row['session_user_id'], $url_show_profile) : ROOT_PATH . "member.php?action=showprofile&amp;" . URL_USER_ID . "=" . $row['session_user_id'];
                    $user_online_list .= "<a href=\"" . $site_sess->url($user_profile_link) . "\">" . str_replace(array("{", "}"), array("&#123;", "&#125;"), $username) . "</a>" . $invisibleuser;
                }
                !$is_invisible ? $num_visible_online++ : $num_invisible_online++;
                $num_registered_online++;
            }
            $prev_user_ids[$row['session_user_id']] = 1;
        } else {
            if (!isset($prev_session_ips[$row['session_ip']])) {
                $num_guests_online++;
            }
        }
        $prev_session_ips[$row['session_ip']] = 1;
    }
    $num_total_online = $num_registered_online + $num_guests_online;
    //$num_invisible_online = $num_registered_online - $num_visible_online;
    $site_template->register_vars(array("num_total_online" => $num_total_online, "num_invisible_online" => $num_invisible_online, "num_registered_online" => $num_registered_online, "num_guests_online" => $num_guests_online, "user_online_list" => $user_online_list, "lang_user_online" => str_replace('{num_total_online}', $num_total_online, $lang['user_online']), "lang_user_online_detail" => str_replace(array('{num_registered_online}', '{num_invisible_online}', '{num_guests_online}'), array($num_registered_online, $num_invisible_online, $num_guests_online), $lang['user_online_detail'])));