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; }