function Loginout() { global $db, $timestamp, $db_onlinetime, $groupid, $windid, $winduid, $db_ckpath, $db_ckdomain, $db_online; $thisvisit = $timestamp - $db_onlinetime * 1.5; $db->update('UPDATE pw_memberdata SET thisvisit=' . pwEscape($thisvisit) . ' WHERE uid=' . pwEscape($winduid)); /*update cache*/ $_cache = getDatastore(); $_cache->delete("UID_" . $winduid); list($db_ckpath, $db_ckdomain) = explode("\t", GetCookie('ck_info')); Cookie('winduser', '', 0); Cookie('hideid', '', 0); Cookie('lastvisit', '', 0); $pwdcheck = GetCookie('pwdcheck'); if (is_array($pwdcheck)) { foreach ($pwdcheck as $key => $value) { Cookie("pwdcheck[{$key}]", '', 0); } } Cookie('ck_info', '', 0); Cookie('msghide', '', 0, false); $windid = $winduid = ''; }
function autoban($uid) { global $db, $db_banby, $db_banmax, $db_bantype, $db_banlimit, $timestamp; $rt = $db->get_one('SELECT m.groupid,m.memberid,md.postnum,md.rvrc,md.money FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid=' . pwEscape($uid)); if ($rt['groupid'] == '-1' || $rt['groupid'] == '6') { switch ($db_banby) { case 1: $banby = $rt['postnum']; break; case 2: $banby = $rt['rvrc'] / 10; break; case 3: $banby = $rt['money']; break; default: $banby = $rt['postnum']; } if ($rt['groupid'] == '-1') { if ($banby < $db_banmax) { $db->update("UPDATE pw_members SET groupid='6' WHERE uid=" . pwEscape($uid)); $pwSQL = pwSqlSingle(array('uid' => $uid, 'fid' => 0, 'type' => $db_bantype, 'startdate' => $timestamp, 'days' => $db_banlimit, 'admin' => 'autoban', 'reason' => '')); $db->update("REPLACE INTO pw_banuser SET {$pwSQL}"); } } elseif ($banby >= $db_banmax) { $bandb = $db->get_one("SELECT id FROM pw_banuser WHERE uid=" . pwEscape($uid) . " AND fid='0'"); if (!$bandb) { $db->update("UPDATE pw_members SET groupid='-1' WHERE uid=" . pwEscape($uid)); } elseif ($bandb['type'] == 1 && $timestamp - $bandb['startdate'] > $bandb['days'] * 86400) { $db->update("UPDATE pw_members SET groupid='-1' WHERE uid=" . pwEscape($uid)); $db->update("DELETE FROM pw_banuser WHERE id=" . pwEscape($bandb['id'])); } } $_cache = getDatastore(); $_cache->delete('UID_' . $uid); } }
$blacklist = array_unique(explode(',', $banpm)); $messageServer->setMsConfig(array('blacklist' => serialize($blacklist)), $uid); /* phpwind数据统计 */ if ($gender != $oldinfo['gender'] || $bday != $oldinfo['bday']) { $statistics = L::loadClass('Statistics', 'datanalyse'); $statistics->alertSexDistribution($oldinfo['gender'], $gender); $statistics->alertAgeDistribution(intval($oldinfo['bday']), intval($bday)); } adminmsg('operate_success'); } } elseif ($action == 'editgroup') { S::gp(array('gid'), 'P'); if (!$gid) { adminmsg('operate_error'); } $_cache = getDatastore(); $messageServer = L::loadClass('message', 'message'); foreach ($gid as $uid => $groupid) { if ($uid) { $userService = L::loadClass('UserService', 'user'); /* @var $userService PW_UserService */ $rt = $userService->get($uid, true, true); if ($rt['groupid'] == 7 && $groupid != 7) { $userService->update($uid, array('yz' => 1)); } $messageServer->grabMessage($uid, array($rt['groupid'] == '-1' ? $rt['memberid'] : $rt['groupid']), max($rt['lastgrab'], $rt['regdate'])); if ($rt['groupid'] == 3 && $groupid != 3 && !If_manager) { adminmsg('manager_right'); } elseif ($rt['groupid'] != 3 && $groupid == 3 && !If_manager) { adminmsg('manager_right'); } elseif ($rt['groupid'] == 5 && $groupid == -1 || $rt['groupid'] != 5 && $groupid == 5) {
function updateMemberid($uid, $isown = true) { global $db, $winddb, $creditset, $db_upgrade, $credit, $lneed; $lneed || ($lneed = L::config('lneed', 'level')); if ($isown == true) { $userdb = $winddb; } else { $userdb = $db->get_one("SELECT m.memberid,md.rvrc,md.money,md.credit,md.currency,md.postnum,md.digests,md.onlinetime FROM pw_members m LEFT JOIN pw_memberdata md ON m.uid=md.uid WHERE m.uid=" . pwEscape($uid)); } $userdb['rvrc'] += $creditset['rvrc']; $userdb['money'] += $creditset['money']; $userdb['credit'] += $creditset['credit']; $userdb['currency'] += $creditset['currency']; $usercredit = array('postnum' => $userdb['postnum'], 'digests' => $userdb['digests'], 'rvrc' => $userdb['rvrc'], 'money' => $userdb['money'], 'credit' => $userdb['credit'], 'currency' => $userdb['currency'], 'onlinetime' => $userdb['onlinetime']); $upgradeset = unserialize($db_upgrade); foreach ($upgradeset as $key => $val) { if (is_numeric($key) && $val) { foreach ($credit->get($uid, 'CUSTOM') as $key => $value) { $usercredit[$key] = $value; } break; } } $memberid = getmemberid(CalculateCredit($usercredit, $upgradeset)); if ($userdb['memberid'] != $memberid) { $db->update("UPDATE pw_members SET memberid=" . pwEscape($memberid) . " WHERE uid=" . pwEscape($uid)); $_cache = getDatastore(); $_cache->delete('UID_' . $uid); } }
function runsql($setArr = null, $isAdd = true) { global $db, $uc_server, $uc_syncredit; $setUser = isset($setArr) ? $setArr : $this->setUser; $retv = array(); if ($uc_server && $uc_syncredit) { require_once R_P . 'uc_client/uc_client.php'; $retv = uc_credit_add($setUser, $isAdd); } $cacheUids = $cacheCredits = array(); foreach ($setUser as $uid => $setv) { $sql = ''; foreach ($setv as $cid => $v) { $v = intval($v); if ($this->check($cid) && ($v != 0 || !$isAdd)) { if (isset($retv[$uid][$cid])) { if ($uc_server == 1) { continue; } $act = 'set'; $v = $retv[$uid][$cid]; } else { $act = $isAdd ? 'add' : 'set'; } if (is_numeric($cid)) { $db->pw_update("SELECT uid FROM pw_membercredit WHERE uid=" . pwEscape($uid) . ' AND cid=' . pwEscape($cid), "UPDATE pw_membercredit SET " . ($act == 'add' ? 'value=value+' : 'value=') . pwEscape($v) . ' WHERE uid=' . pwEscape($uid) . ' AND cid=' . pwEscape($cid), "INSERT INTO pw_membercredit SET " . pwSqlSingle(array('uid' => $uid, 'cid' => $cid, 'value' => $v))); } else { $cid == 'rvrc' && ($v *= 10); $sql .= ($act == 'add' ? ",{$cid}={$cid}+" : ",{$cid}=") . pwEscape($v); } } } if ($sql) { $db->update("UPDATE pw_memberdata SET " . ltrim($sql, ',') . " WHERE uid=" . pwEscape($uid), 0); } unset($this->getUser[$uid]); $cacheUids[] = 'UID_' . $uid; $cacheCredits[] = 'UID_CREDIT_' . $uid; } if ($cacheUids) { $_cache = getDatastore(); $_cache->delete($cacheUids); $_cache->delete($cacheCredits); /*积分*/ } $this->writeLog(); !isset($setArr) && ($this->setUser = array()); }
function processLogin($userId, $user = null, $cktime = '31536000', $lgt = 0) { global $timestamp, $db_ckpath, $db_ckdomain, $db_autoban; if (!$user) { $userService = L::loadClass('UserService', 'user'); /* @var $userService PW_UserService */ $user = $userService->get($userId, true, true); } $pwuser = $user['username']; $md5_pwpwd = $user['password']; $safecv = $user['safecv']; require_once R_P . 'require/checkpass.php'; $logininfo = checkpass($pwuser, $md5_pwpwd, $safecv, $lgt); if (!is_array($logininfo)) { Showmsg($logininfo); } list($winduid, , $windpwd, ) = $logininfo; /*update cache*/ $_cache = getDatastore(); $_cache->delete("UID_" . $winduid); $cktime != 0 && ($cktime += $timestamp); Cookie("winduser", StrCode($winduid . "\t" . $windpwd . "\t" . $safecv), $cktime); Cookie("ck_info", $db_ckpath . "\t" . $db_ckdomain); Cookie('lastvisit', '', 0); //将$lastvist清空以将刚注册的会员加入今日到访会员中 //自动获取勋章_start require_once R_P . 'require/functions.php'; doMedalBehavior($winduid, 'continue_login'); //自动获取勋章_end if ($db_autoban) { require_once R_P . 'require/autoban.php'; autoban($winduid); } return $logininfo; }