function UpdateSessions()
 {
     if (jsg_getcookie('sid') == '' || $this->sid != jsg_getcookie('sid')) {
         $this->setSessionId($this->sid);
     }
     $uid = MEMBER_ID;
     $timestamp = TIMESTAMP;
     $member = $this->MemberFields;
     $member['slastactivity'] = $timestamp;
     $member['action'] = (int) $this->CurrentAction['id'];
     if ($this->SessionExists) {
         if ($member['action'] > 0 && $member['action'] != $this->MemberFields['action'] || $timestamp - $this->MemberFields['slastactivity'] > 900) {
             if ($uid > 0 || !$this->no_record_guest) {
                 DB::query("UPDATE " . DB::table('sessions') . " SET `action`='{$member['action']}', `slastactivity`='{$member['slastactivity']}' WHERE `sid`='{$this->sid}'");
             }
         }
     } else {
         $onlinehold = 3600;
         $ip = $GLOBALS['_J']['client_ip'];
         if ($uid > 0 || !$this->no_record_guest) {
             $ips = explode('.', $ip);
             $sql = "DELETE FROM `" . TABLE_PREFIX . "sessions`\r\n\t\t\t\tWHERE\r\n\t\t\t\t\t`sid`='{$this->sid}'\r\n\t\t\t\t\tOR `slastactivity`<'" . ($timestamp - $onlinehold) . "'\r\n\t\t\t\t\tOR ('" . $uid . "'<>'0' AND `uid`='" . $uid . "')\r\n\t\t\t\t\tOR (`uid`='0' AND `ip1`='{$ips['0']}' AND `ip2`='{$ips['1']}' AND `ip3`='{$ips['2']}' AND `ip4`='{$ips['3']}' AND `slastactivity`>'" . ($timestamp - 60) . "')";
             DB::query($sql, 'SILENT');
             DB::query("REPLACE INTO " . DB::table('sessions') . "\r\n\t\t\t\t\tSET `sid`='{$this->sid}', `ip1`='{$ips[0]}', `ip2`='{$ips[1]}', `ip3`='{$ips[2]}', `ip4`='{$ips[3]}',\r\n\t\t\t\t\t`uid`='{$member['uid']}', `action`='{$member['action']}', `slastactivity`='{$member['slastactivity']}'", 'SILENT');
         }
         if ($uid > 0) {
             if ($ip != $this->MemberFields['lastip'] || $timestamp - $this->MemberFields['lastactivity'] > $onlinehold) {
                 $sql = "\r\n\t\t\t\t\tUPDATE\r\n\t\t\t\t\t\t" . TABLE_PREFIX . 'members' . "\r\n\t\t\t\t\tSET\r\n\t\t\t\t\t\tlastip='{$ip}',\r\n\t\t\t\t\t\tlast_ip_port='{$GLOBALS['_J']['client_ip_port']}',\r\n\t\t\t\t\t\tlastactivity='{$timestamp}'\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\tuid='" . $uid . "'";
                 DB::query($sql, 'SILENT');
             }
             if ($ip != $this->MemberFields['lastip'] || date('Ymd', $this->MemberFields['lastactivity']) != date('Ymd', $timestamp)) {
                 jsg_login_log();
             }
         }
     }
 }
 function login_set_status($member)
 {
     if (is_numeric($member)) {
         $member = DB::fetch_first("select * from " . DB::table('members') . " where `uid`='{$member}'");
     }
     if (!$member) {
         return array();
     }
     jsg_login_log(array('uid' => $member['uid'], 'user_nickname' => $member['nickname']));
     jsg_setcookie('sid', '', -311040000);
     jsg_setcookie('referer', '', -311040000);
     $life = 311040000;
     $authcode_time = 1209600;
     if (!jget('savelogin') && (true === IN_JISHIGOU_INDEX || true === IN_JISHIGOU_AJAX || true === IN_JISHIGOU_WAP)) {
         $life = 0;
         $authcode_time = 36000;
     }
     jsg_setcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE', '', $authcode_time), $life);
     return $member;
 }