예제 #1
0
function sn_autologin($abort = true)
{
    global $config, $IsUserChecked;
    $lang = $GLOBALS['lang'];
    $time_now = $GLOBALS['time_now'];
    $IsUserChecked = false;
    if (!isset($_COOKIE[$config->COOKIE_NAME])) {
        return false;
    }
    $TheCookie = explode("/%/", $_COOKIE[$config->COOKIE_NAME]);
    $TheCookie[0] = intval($TheCookie[0]);
    $TheCookie[1] = mysql_real_escape_string($TheCookie[1]);
    $user = doquery("SELECT * FROM `{{users}}` WHERE `id` = '{$TheCookie[0]}' LIMIT 1;", '', true);
    if (!$user || md5("{$user['password']}--{$config->secret_word}") !== $TheCookie[2]) {
        setcookie($config->COOKIE_NAME, "", time() - 3600 * 25);
        if ($abort) {
            message($lang['err_cookie']);
        }
        return false;
    }
    sn_set_cookie($user, $TheCookie[3]);
    sys_user_options_unpack($user);
    $ip = sys_get_user_ip();
    $user_agent = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
    doquery("UPDATE `{{users}}` SET `onlinetime`  = '{$time_now}', `user_lastip` = '{$ip['client']}', `user_proxy`  = '{$ip['proxy']}', `user_agent`  = '{$user_agent}' WHERE `id` = '{$user['id']}' LIMIT 1;");
    if (!$GLOBALS['skip_ban_check'] && $user['banaday']) {
        if ($user['banaday'] > $time_now) {
            $bantime = date(FMT_DATE_TIME, $user['banaday']);
            die("{$lang['sys_banned_msg']} {$bantime}");
        }
        doquery("UPDATE {{users}} SET bana=0, `vacation` = '{$time_now}', banaday=0 WHERE id='{$user['id']}' LIMIT 1;");
    }
    $IsUserChecked = is_array($user);
    return $user;
}
예제 #2
0
function sys_log_hit()
{
    if (!$GLOBALS['config']->game_counter || $GLOBALS['sys_stop_log_hit']) {
        return;
    }
    $GLOBALS['is_watching'] = true;
    $ip = sys_get_user_ip();
    doquery("INSERT INTO {{counter}} (`time`, `page`, `url`, `user_id`, `ip`, `proxy`) VALUES ('{$GLOBALS['time_now']}', '{$_SERVER['PHP_SELF']}', '{$_SERVER['REQUEST_URI']}', '{$GLOBALS['user']['id']}', '{$ip['client']}', '{$ip['proxy']}');");
    $GLOBALS['is_watching'] = false;
}