示例#1
0
/**
 * 发送站内短消息
 * 
 * @param      int         $uid 接收用户id
 * @param      string      $uname 接受用户名
 * @param      string      $title 短消息标题
 * @param      string      $msg 短消息内容
 * @access     public
 * @return     bool
 */
function jieqi_sendmessage($uid, $uname, $title, $msg)
{
    include_once JIEQI_ROOT_PATH . '/class/message.php';
    $message_handler =& JieqiMessageHandler::getInstance('JieqiMessageHandler');
    $newMessage = $message_handler->create();
    $newMessage->setVar('siteid', JIEQI_SITE_ID);
    $newMessage->setVar('postdate', JIEQI_NOW_TIME);
    $newMessage->setVar('fromid', 0);
    $newMessage->setVar('fromname', $_SESSION['jieqiUserName']);
    $newMessage->setVar('toid', $uid);
    $newMessage->setVar('toname', $uname);
    $newMessage->setVar('title', $title);
    $newMessage->setVar('content', $msg);
    $newMessage->setVar('messagetype', 0);
    $newMessage->setVar('isread', 0);
    $newMessage->setVar('fromdel', 0);
    $newMessage->setVar('todel', 0);
    $newMessage->setVar('enablebbcode', 1);
    $newMessage->setVar('enablehtml', 0);
    $newMessage->setVar('enablesmilies', 1);
    $newMessage->setVar('attachsig', 0);
    $newMessage->setVar('attachment', 0);
    if (!$message_handler->insert($newMessage)) {
        return true;
    } else {
        return false;
    }
}
示例#2
0
 $sql = "SELECT COUNT(*) AS msgnum FROM " . jieqi_dbprefix('system_message') . " WHERE (fromid=" . $_SESSION['jieqiUserId'] . " AND fromdel=0) OR (toid=" . $_SESSION['jieqiUserId'] . " AND todel=0)";
 $res = $message_handler->db->query($sql);
 $row = $message_handler->getRow($res);
 $nowmessage = (int) $row['msgnum'];
 if ($nowmessage >= $maxmessage) {
     $jieqiTpl->setCaching(0);
     $jieqiTpl->assign('jieqi_contents', jieqi_msgbox($jieqiLang['system']['message_is_full'], $jieqiLang['system']['message_box_full']));
 } else {
     $jieqiTpl->assign('maxdaymsg', $maxdaymsg);
     $jieqiTpl->assign('nowmessage', $nowmessage);
     $jieqiTpl->assign('maxmessage', $maxmessage);
     $jieqiTpl->assign('url_newmessage', JIEQI_URL . '/newmessage.php?do=submit');
     $message = false;
     if (!empty($_REQUEST['reid']) || !empty($_REQUEST['fwid'])) {
         include_once JIEQI_ROOT_PATH . '/class/message.php';
         $message_handler = JieqiMessageHandler::getInstance('JieqiMessageHandler');
         if (!empty($_REQUEST['reid'])) {
             $message = $message_handler->get($_REQUEST['reid']);
         } elseif (!empty($_REQUEST['fwid'])) {
             $message = $message_handler->get($_REQUEST['fwid']);
         }
     }
     if (is_object($message)) {
         $_REQUEST['receiver'] = $message->getVar('fromname', 'e');
         $_REQUEST['title'] = $message->getVar('title', 'e');
         if (!empty($_REQUEST['reid'])) {
             $_REQUEST['title'] = 'Re:' . $_REQUEST['title'];
             $_REQUEST['content'] = '';
         } elseif (!empty($_REQUEST['fwid'])) {
             $_REQUEST['title'] = 'Fw:' . $_REQUEST['title'];
             $_REQUEST['content'] = $message->getVar('content', 'e');
示例#3
0
/**
 * 用户登录后处理
 * 
 * @param      object      $jieqiUsers 用户对象
 * @access     public
 * @return     bool
 */
function jieqi_loginprocess($jieqiUsers, $usecookie = 0)
{
    global $jieqiConfigs;
    global $jieqiHonors;
    global $jieqiGroups;
    if (!isset($jieqiConfigs['system'])) {
        jieqi_getconfigs('system', 'configs');
    }
    include_once JIEQI_ROOT_PATH . '/class/users.php';
    $users_handler =& JieqiUsersHandler::getInstance('JieqiUsersHandler');
    //更新在线用户表
    include_once JIEQI_ROOT_PATH . '/class/online.php';
    $online_handler =& JieqiOnlineHandler::getInstance('JieqiOnlineHandler');
    $criteria = new CriteriaCompo(new Criteria('uid', $jieqiUsers->getVar('uid', 'n')));
    $criteria->setSort('updatetime');
    $criteria->setOrder('DESC');
    $online_handler->queryObjects($criteria);
    $online = $online_handler->getObject();
    //读cookie信息
    $jieqi_user_info = array();
    if (!empty($_COOKIE['jieqiUserInfo'])) {
        $jieqi_user_info = jieqi_strtosary($_COOKIE['jieqiUserInfo']);
    } else {
        $jieqi_user_info = array();
    }
    $jieqi_visit_info = array();
    if (!empty($_COOKIE['jieqiVisitInfo'])) {
        $jieqi_visit_info = jieqi_strtosary($_COOKIE['jieqiVisitInfo']);
    } else {
        $jieqi_visit_info = array();
    }
    if (is_object($online)) {
        $ip = jieqi_userip();
        if (JIEQI_SESSION_EXPRIE > 0) {
            $exprie_time = JIEQI_SESSION_EXPRIE;
        } else {
            $exprie_time = @ini_get('session.gc_maxlifetime');
        }
        if (empty($exprie_time)) {
            $exprie_time = 1800;
        }
        if (defined('JIEQI_DENY_RELOGIN') && JIEQI_DENY_RELOGIN == 1 && JIEQI_NOW_TIME - $online->getVar('updatetime') < $exprie_time && $online->getVar('ip', 'n') != $ip && $jieqi_visit_info['jieqiUserId'] != $jieqiUsers->getVar('uid')) {
            return -8;
        }
        $tmpvar = strlen($jieqiUsers->getVar('name', 'q')) > 0 ? $jieqiUsers->getVar('name', 'q') : $jieqiUsers->getVar('uname', 'q');
        $sql = "UPDATE " . jieqi_dbprefix('system_online') . " SET uid=" . $jieqiUsers->getVar('uid', 'q') . ", sid='" . jieqi_dbslashes(session_id()) . "', uname='" . $jieqiUsers->getVar('uname', 'q') . "', name='" . $tmpvar . "', pass='******'pass', 'q') . "',email='" . $jieqiUsers->getVar('email', 'q') . "', groupid=" . $jieqiUsers->getVar('groupid', 'q') . ", updatetime=" . JIEQI_NOW_TIME . ", ip='" . jieqi_dbslashes($ip) . "' WHERE uid=" . $jieqiUsers->getVar('uid', 'q') . " OR sid='" . jieqi_dbslashes(session_id()) . "'";
        $online_handler->db->query($sql);
    } else {
        include_once JIEQI_ROOT_PATH . '/include/visitorinfo.php';
        $online = $online_handler->create();
        $online->setVar('uid', $jieqiUsers->getVar('uid', 'n'));
        $online->setVar('siteid', JIEQI_SITE_ID);
        $online->setVar('sid', session_id());
        $online->setVar('uname', $jieqiUsers->getVar('uname', 'n'));
        $tmpvar = strlen($jieqiUsers->getVar('name', 'n')) > 0 ? $jieqiUsers->getVar('name', 'n') : $jieqiUsers->getVar('uname', 'n');
        $online->setVar('name', $tmpvar);
        $online->setVar('pass', $jieqiUsers->getVar('pass', 'n'));
        $online->setVar('email', $jieqiUsers->getVar('email', 'n'));
        $online->setVar('groupid', $jieqiUsers->getVar('groupid', 'n'));
        $tmpvar = JIEQI_NOW_TIME;
        $online->setVar('logintime', $tmpvar);
        $online->setVar('updatetime', $tmpvar);
        $online->setVar('operate', '');
        $tmpvar = VisitorInfo::getIp();
        $online->setVar('ip', $tmpvar);
        $online->setVar('browser', VisitorInfo::getBrowser());
        $online->setVar('os', VisitorInfo::getOS());
        $location = VisitorInfo::getIpLocation($tmpvar);
        if (JIEQI_SYSTEM_CHARSET == 'big5') {
            include_once JIEQI_ROOT_PATH . '/include/changecode.php';
            $location = jieqi_gb2big5($location);
        }
        $online->setVar('location', $location);
        $online->setVar('state', '0');
        $online->setVar('flag', '0');
        $online_handler->insert($online);
    }
    //删除过期的在线用户
    unset($criteria);
    $criteria = new CriteriaCompo(new Criteria('updatetime', JIEQI_NOW_TIME - $jieqiConfigs['system']['onlinetime'], '<'));
    $online_handler->delete($criteria);
    //检查短消息
    include_once JIEQI_ROOT_PATH . '/class/message.php';
    $message_handler = JieqiMessageHandler::getInstance('JieqiMessageHandler');
    $criteria = new CriteriaCompo(new Criteria('toid', $jieqiUsers->getVar('uid'), '='));
    $criteria->add(new Criteria('isread', 0, '='));
    $criteria->add(new Criteria('todel', 0, '='));
    $newmsgnum = $message_handler->getCount($criteria);
    unset($criteria);
    //有短消息
    //用户信息
    $previewlogin = intval($jieqiUsers->getVar('lastlogin'));
    $jieqiUsers->setVar('lastlogin', JIEQI_NOW_TIME);
    $userset = unserialize($jieqiUsers->getVar('setting', 'n'));
    if (!isset($userset['lastip']) || $userset['lastip'] != jieqi_userip()) {
        $userset['lastip'] = jieqi_userip();
    }
    if (!isset($userset['logindate']) || $userset['logindate'] != date('Y-m-d')) {
        $userset['logindate'] = date('Y-m-d');
        //增加登陆积分
        $jieqiUsers->setVar('experience', $jieqiUsers->getVar('experience') + $jieqiConfigs['system']['scorelogin']);
        $jieqiUsers->setVar('score', $jieqiUsers->getVar('score') + $jieqiConfigs['system']['scorelogin']);
    }
    //如果换月了,清空月积分
    //if(date('Y-m', $previewlogin) != date('Y-m', JIEQI_NOW_TIME)) $jieqiUsers->setVar('monthscore', 0);
    $jieqiUsers->setVar('setting', serialize($userset));
    $jieqiUsers->unsetNew();
    $users_handler->insert($jieqiUsers);
    header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
    //设置SESSION
    jieqi_setusersession($jieqiUsers);
    if ($newmsgnum > 0) {
        $_SESSION['jieqiNewMessage'] = $newmsgnum;
    }
    //后台登录状态
    $jieqi_online_info = empty($_COOKIE['jieqiOnlineInfo']) ? array() : jieqi_strtosary($_COOKIE['jieqiOnlineInfo']);
    if (isset($jieqi_online_info['jieqiAdminLogin']) && $jieqi_online_info['jieqiAdminLogin'] == 1) {
        $_SESSION['jieqiAdminLogin'] = 1;
    }
    $jieqi_user_info['jieqiUserId'] = $_SESSION['jieqiUserId'];
    $jieqi_user_info['jieqiUserUname'] = $_SESSION['jieqiUserUname'];
    $jieqi_user_info['jieqiUserName'] = $_SESSION['jieqiUserName'];
    $jieqi_user_info['jieqiUserGroup'] = $_SESSION['jieqiUserGroup'];
    $jieqi_user_info['jieqiUserGroupName'] = $jieqiGroups[$_SESSION['jieqiUserGroup']];
    $jieqi_user_info['jieqiUserVip'] = $_SESSION['jieqiUserVip'];
    $jieqi_user_info['jieqiUserHonorId'] = $_SESSION['jieqiUserHonorId'];
    $jieqi_user_info['jieqiUserHonor'] = $_SESSION['jieqiUserHonor'];
    if ($newmsgnum > 0) {
        $jieqi_user_info['jieqiNewMessage'] = $newmsgnum;
    }
    if ($usecookie) {
        $jieqi_user_info['jieqiUserPassword'] = $jieqiUsers->getVar('pass', 'n');
    }
    include_once JIEQI_ROOT_PATH . '/include/changecode.php';
    if (JIEQI_SYSTEM_CHARSET == 'gbk') {
        $jieqi_user_info['jieqiUserUname_un'] = jieqi_gb2unicode($_SESSION['jieqiUserUname']);
        $jieqi_user_info['jieqiUserName_un'] = jieqi_gb2unicode($_SESSION['jieqiUserName']);
        $jieqi_user_info['jieqiUserHonor_un'] = jieqi_gb2unicode($_SESSION['jieqiUserHonor']);
        $jieqi_user_info['jieqiUserGroupName_un'] = jieqi_gb2unicode($jieqiGroups[$_SESSION['jieqiUserGroup']]);
    } else {
        $jieqi_user_info['jieqiUserUname_un'] = jieqi_big52unicode($_SESSION['jieqiUserUname']);
        $jieqi_user_info['jieqiUserName_un'] = jieqi_big52unicode($_SESSION['jieqiUserName']);
        $jieqi_user_info['jieqiUserHonor_un'] = jieqi_big52unicode($_SESSION['jieqiUserHonor']);
        $jieqi_user_info['jieqiUserGroupName_un'] = jieqi_gb2unicode($jieqiGroups[$_SESSION['jieqiUserGroup']]);
    }
    $jieqi_user_info['jieqiUserLogin'] = JIEQI_NOW_TIME;
    if ($usecookie < 0) {
        $usecookie = 0;
    } elseif ($usecookie == 1) {
        $usecookie = 315360000;
    }
    if ($usecookie) {
        $cookietime = JIEQI_NOW_TIME + $usecookie;
    } else {
        $cookietime = 0;
    }
    @setcookie('jieqiUserInfo', jieqi_sarytostr($jieqi_user_info), $cookietime, '/', JIEQI_COOKIE_DOMAIN, 0);
    $jieqi_visit_info['jieqiUserLogin'] = $jieqi_user_info['jieqiUserLogin'];
    $jieqi_visit_info['jieqiUserId'] = $jieqi_user_info['jieqiUserId'];
    @setcookie('jieqiVisitInfo', jieqi_sarytostr($jieqi_visit_info), JIEQI_NOW_TIME + 99999999, '/', JIEQI_COOKIE_DOMAIN, 0);
    //更新在线用户
    include_once JIEQI_ROOT_PATH . '/lib/template/template.php';
    $jieqiTpl =& JieqiTpl::getInstance();
    $jieqiTpl->clear_cache(JIEQI_ROOT_PATH . '/templates/online.html');
    return 0;
}