Exemple #1
0
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 = '';
}
Exemple #2
0
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);
    }
}
Exemple #3
0
         $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) {
Exemple #4
0
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);
    }
}
Exemple #5
0
 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());
 }
Exemple #6
0
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;
}