Exemplo n.º 1
0
 function DoLogin()
 {
     if (!$this->Username) {
         $this->Messager("无法登录,用户名或密码不能为空");
     }
     if ('' == $this->Password) {
         $this->Messager("无法登录,用户名或密码不能为空");
     }
     $loginperm = $this->_logincheck();
     if (!$loginperm) {
         $this->Messager("累计 5 次错误尝试,15 分钟内您将不能登录。", null);
     }
     $rets = $UserFields = array();
     $rets = jsg_member_login_check($this->Username, $this->Password);
     if ($rets['uid'] > 0) {
         $UserFields = jsg_member_login_set_status($rets['uid']);
     }
     if ($rets['uid'] < 1 || !$UserFields) {
         $this->Messager("无法登录,用户名或密码错误,您可以有至多 5 次尝试。", -1);
     }
     if ('normal' == $UserFields['role_type']) {
         $this->Messager("普通用户组成员无权登录后台", null);
     }
     $this->_loginfailed(3);
     if (!$this->Config['close_second_verify_enable']) {
         $authcode = authcode("{$UserFields['password']}\t{$UserFields['uid']}", 'ENCODE', $this->jsgAuthKey);
         jsg_setcookie('jsgAuth', $authcode);
     }
     $referer = jsg_getcookie('referer');
     if (!trim($referer)) {
         $referer = referer($this->Config['site_url'] . '/admin.php');
     }
     $this->Messager("登录成功,正在进入后台", $referer);
 }
Exemplo n.º 2
0
function xwb_setSiteUserLogin($uid)
{
    $uid = (int) $uid;
    if ($uid < 1) {
        return false;
    }
    /**
     * 设置Cookie进行登录
     */
    $member = jsg_member_login_set_status($uid);
    /**
     * 存入全局 后面会调用
     */
    $GLOBALS['_J']['config']['login_user'] = $member;
    return $member;
}
Exemplo n.º 3
0
 function do_other_login()
 {
     $username = $this->Post['username'];
     $password = $this->Post['password'];
     $savelogin = $this->Post['savelogin'];
     if (!$username || !$password) {
         $this->other_login();
         return false;
     }
     $member = jsg_member_login($username, $password);
     if ($member['uid'] < 0) {
         include template('login/login_index_other');
         return FALSE;
     } else {
         if ($savelogin) {
             jsg_member_login_set_status($member);
         }
         $member = jsg_member_info($member['uid']);
         $this->show_user($member);
     }
 }
Exemplo n.º 4
0
 function _user_login($uid)
 {
     return jsg_member_login_set_status($uid);
 }
Exemplo n.º 5
0
 function MasterObject(&$config)
 {
     require_once ROOT_PATH . 'mobile/include/func/mobile.func.php';
     $config['client_type'] = '';
     $user_agent = $_SERVER['HTTP_USER_AGENT'];
     if (empty($user_agent)) {
         exit('Access Denied');
     }
     $pc_browser = false;
     if (preg_match("/android/i", $user_agent)) {
         $config['client_type'] = "android";
     } else {
         if (preg_match("/iphone/i", $user_agent)) {
             $config['client_type'] = "iphone";
         } else {
             $pc_browser = true;
         }
     }
     $config['is_mobile_client'] = false;
     if (isset($_GET['JSG_SESSION']) && isset($_GET['iv']) && isset($_GET['app_key']) && isset($_GET['app_secret']) && isset($_GET['bt'])) {
         $config['is_mobile_client'] = true;
         define("IS_MOBILE_CLIENT", true);
     }
     define("CLIENT_TYPE", $config['client_type']);
     $config['sys_version'] = sys_version();
     $config['sys_published'] = SYS_PUBLISHED;
     if (!$config['mobile_url']) {
         $config['mobile_url'] = $config['site_url'] . "/mobile";
     }
     if (!$config['topic_length']) {
         $config['topic_length'] = 140;
     }
     $this->Config = $config;
     $this->Config = array_merge($this->Config, Mobile::config());
     define("CHARSET", $this->Config['charset']);
     Obj::register('config', $this->Config);
     $this->Get =& $_GET;
     $this->Post =& $_POST;
     $this->Module = trim($this->Post['mod'] ? $this->Post['mod'] : $this->Get['mod']);
     $this->Code = trim($this->Post['code'] ? $this->Post['code'] : $this->Get['code']);
     $this->DatabaseHandler =& Obj::registry('DatabaseHandler');
     $uid = 0;
     $password = '';
     $authcode = '';
     $implicit_pass = true;
     if (!empty($this->Get['JSG_SESSION']) && $config['is_mobile_client']) {
         $authcode = $this->Get['JSG_SESSION'];
         $authcode = rawurldecode($authcode);
         $implicit_pass = false;
     } else {
         $authcode = jsg_getcookie('auth');
     }
     if (!empty($authcode)) {
         list($password, $uid) = explode("\t", authcode($authcode, 'DECODE'));
     }
     $this->MemberHandler = jclass('member');
     $MemberFields = $this->MemberHandler->FetchMember($uid, $password);
     if ($this->MemberHandler->HasPermission($this->Module, $this->Code) == false) {
         Mobile::show_message(411);
         exit;
     }
     if (!in_array($this->Module, array('member', 'login', 'wechat'))) {
         $visit_rets = $this->MemberHandler->visit();
         if ($visit_rets['error']) {
             Mobile::show_message(411);
             exit;
         }
     }
     $this->Title = $this->MemberHandler->CurrentAction['name'];
     Obj::register("MemberHandler", $this->MemberHandler);
     $rets = jsg_member_login_extract();
     if ($rets) {
         if (MEMBER_ID < 1) {
             $func = $rets['login_direct'];
         } else {
             $func = $rets['logout_direct'];
         }
         if ($func && function_exists($func)) {
             $ret = $func();
         }
     }
     if (MEMBER_ID > 0) {
         jsg_member_login_set_status($MemberFields);
     }
     if ($this->Config['extcredits_enable']) {
         if (MEMBER_ID > 0 && jsg_getcookie('login_credits') + 3600 < time()) {
             update_credits_by_action('login', MEMBER_ID);
             jsg_setcookie('login_credits', time(), 3600);
         }
     }
 }
Exemplo n.º 6
0
 function changeLogin()
 {
     if (MEMBER_ID < 1) {
         json_error('请先登录');
     }
     if (!$this->Config['vest_enable']) {
         json_error('未开启马甲功能');
     }
     $uid = jget('uid', 'int');
     if ($uid < 1) {
         json_error('登录失败');
     }
     $ret = jlogic('member_vest')->checkMemberVest(MEMBER_ID, $uid);
     if ($ret) {
         $member = jsg_member_login_set_status($uid);
         if ($member) {
             json_result('登录马甲成功');
         }
     }
     json_error('登录失败');
 }
Exemplo n.º 7
0
 function DoRegister()
 {
     if (MEMBER_ID != 0 and false == $this->IsAdmin) {
         $this->Messager('您已经是注册用户,无需再注册!', -1);
     }
     $regstatus = jsg_member_register_check_status();
     if ($regstatus['error']) {
         $this->Messager($regstatus['error'], null);
     }
     $message = array();
     $timestamp = time();
     $noemail = 0;
     $sms_ckret = 0;
     if ($this->_sms_register()) {
         $sms_bind_num = $this->Post['sms_bind_num'];
         $sms_bind_key = $this->Post['sms_bind_key'];
         $sms_ckret = sms_check_bind_key($sms_bind_num, $sms_bind_key);
         if ($sms_ckret) {
             $this->Messager($sms_ckret, -1);
         }
         $noemail = jconf::get('sms', 'register_verify', 'noemail');
         if ($noemail) {
             $this->Post['email'] = $sms_bind_num . '@139.com';
         }
     }
     $inviter_member = array();
     $invite_code = $this->Post['invite_code'] ? $this->Post['invite_code'] : $this->Get['invite_code'];
     $check_result = jsg_member_register_check_invite($invite_code);
     if ($regstatus['invite_enable'] && !$regstatus['normal_enable']) {
         if (!$invite_code) {
             $this->Messager("本站目前需要有好友邀请链接才能注册。<br><br>看看<a href=\"?mod=topic&code=top\">达人榜</a>中有没有你认识的人,让他给你发一个好友邀请。", null);
         }
         if (!$check_result) {
             $this->Messager("对不起,您访问的邀请链接不正确或者因邀请数已满而失效,请重新与邀请人索取链接。", null);
         }
     }
     if ($check_result['uid'] > 0) {
         $inviter_member = jsg_member_info($check_result['uid']);
     }
     if (!$inviter_member && $this->Config['register_invite_input']) {
         $inviter_member = jsg_member_info($this->Post['inviter_nickname'], 'nickname');
     }
     $this->Post = array_iconv('UTF-8', $this->Config['charset'], $this->Post, 1);
     $password = $this->Post['password'];
     $email = $this->Post['email'];
     $username = $nickname = $this->Post['nickname'];
     if (strlen($password) < 5) {
         $this->Messager("密码过短,请设置至少5位", -1);
     }
     $uid = jsg_member_register($nickname, $password, $email);
     if ($uid < 1) {
         $regconf = jconf::get('register');
         $rets = array('0' => '【注册失败】有可能是站点关闭了注册功能', '-1' => '帐户/昵称 不合法,含有不允许注册的字符,请尝试更换一个。', '-2' => '帐户/昵称 不允许注册,含有被保留的字符,请尝试更换一个。', '-3' => '帐户/昵称 已经存在了,请尝试更换一个。', '-4' => 'Email 不合法,请输入正确的Email地址。', '-5' => 'Email 不允许注册,请尝试更换一个。', '-6' => 'Email 已经存在了,请尝试更换一个。', '-7' => '您的IP地址 ' . $GLOBALS['_J']['client_ip'] . ' 已经被限制注册了(一个IP地址 ' . $regconf['time_html'] . ' 之内,最多只能注册 ' . $regconf['limit'] . ' 个用户),请稍后再试或联系管理员');
         $this->Messager($rets[$uid], null);
     }
     $datas = array();
     $datas['uid'] = $uid;
     $datas['province'] = $this->Post['province'];
     $datas['city'] = $this->Post['city'];
     if ($this->_sms_register()) {
         $datas['phone'] = $sms_bind_num;
     }
     jtable('members')->update($datas);
     if ($this->_sms_register()) {
         $_sms_info = _sms_client_user($sms_bind_num);
         $username = $username ? $username : $this->Post['username'];
         $_sms_sets = array('uid' => $uid, 'username' => $username, 'bind_key' => 0, 'bind_key_time' => 0, 'try_bind_times' => '+1', 'last_try_bind_time' => $timestamp);
         sms_client_user_update($_sms_sets, $_sms_info);
     }
     if ($inviter_member) {
         $u = $inviter_member['uid'];
         $c = $check_result['code'];
         buddy_add($u, $uid);
         buddy_add($uid, $u);
         if (0 < ($invite_id = $check_result['invite_id'])) {
             $row = DB::fetch_first("select * from `" . TABLE_PREFIX . "invite` where `id`='{$invite_id}'");
             if ($row) {
                 DB::query("update `" . TABLE_PREFIX . "invite` set `fuid`='{$uid}',`fusername`='{$username}' where `id`='{$row['id']}'");
             }
         } else {
             DB::query("insert into `" . TABLE_PREFIX . "invite` (`uid`,`code`,`dateline`,`fuid`,`fusername`,`femail`) values ('{$u}','{$c}','{$timestamp}','{$uid}','{$username}','{$email}')");
         }
         $sql = "update `" . TABLE_PREFIX . "members` set `invite_count`=`invite_count`+1 where `uid`='{$u}'";
         $this->DatabaseHandler->Query($sql);
         $sql = "update `" . TABLE_PREFIX . "members` set `invite_uid`='{$inviter_member['uid']}' where `uid`='{$uid}'";
         $this->DatabaseHandler->Query($sql);
         if ($c && $this->Config['invite_limit'] > 0) {
             $code_invite_count = DB::result_first("select count(*) as code_invite_count from `" . TABLE_PREFIX . "invite` where `uid`='{$u}' and `code`='{$c}'");
             if ($code_invite_count > $this->Config['invite_limit']) {
                 jsg_member_register_check_invite($u, 1);
             }
         }
         if ($this->Config['extcredits_enable'] && $u > 0) {
             update_credits_by_action('register', $u);
         }
     }
     $rets = jsg_member_login_set_status($uid);
     $this->Messager(null, 'index.php');
 }