function sendMsgToOpt() { $url = $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_message', 'act' => 'index')); $msgshow = $this->app->getConf('comment.verifyCode.discuss') ? $this->app->getConf('comment.verifyCode.discuss') : 'on'; $power = $this->app->getConf('system.message.power') ? $this->app->getConf('system.message.power') : 'member'; if (!$this->check_login() && $power == 'member') { $this->splash('failed', $url, app::get('b2c')->_('仅注册会员才可发表'), '', '', true); } if ($msgshow === "on") { if (!base_vcode::verify('MESSAGEVCODE', intval($_POST['verifyCode']))) { $this->splash('failed', $url, app::get('b2c')->_('验证码填写错误'), '', '', true); } } $display = $this->app->getConf('comment.display.discuss') ? $this->app->getConf('comment.display.discuss') : 'reply'; if ($display == "soon") { $_POST['display'] = "true"; } else { $_POST['display'] = "false"; } $member_data = $this->get_current_member(); $objMessage = kernel::single('b2c_message_message'); $_POST['ip'] = $_SERVER["REMOTE_ADDR"]; if ($objMessage->send($_POST, $member_data)) { $this->splash('success', $url, app::get('b2c')->_('发表成功!'), '', '', true); } else { $this->splash('failed', $url, app::get('b2c')->_('发表失败!'), '', '', true); } }
function login($auth, &$usrdata) { if ($auth->is_enable_vcode()) { if ($auth->type == 'shopadmin') { $key = "DESKTOPVCODE"; } else { $key = "MEMBERVCODE"; } if (!base_vcode::verify($key, intval($_POST['verifycode']))) { $usrdata['log_data'] = __('用户') . $_POST['uname'] . __('验证码不正确!'); $_SESSION['error'] = __('用户') . $_POST['uname'] . __('验证码不正确!'); return false; } } $rows = app::get('pam')->model('account')->getList('*', array('login_name' => $_POST['uname'], 'login_password' => md5($_POST['password']), 'account_type' => $auth->type, 'disabled' => 'false'), 0, 1); if ($rows[0]) { if ($_POST['remember'] === "true") { setcookie('pam_passport_basic_uname', $_POST['uname'], time() + 365 * 24 * 3600, '/'); } else { setcookie('pam_passport_basic_uname', '', 0, '/'); } $usrdata['log_data'] = __('用户') . $_POST['uname'] . __('验证成功!'); return $rows[0]['account_id']; } else { $usrdata['log_data'] = __('用户') . $_POST['uname'] . __('验证失败!'); $_SESSION['error'] = __('用户名或密码错误'); return false; } }
public function vcode_verify($vcode) { if (!base_vcode::verify('b2c', $vcode)) { return false; } return true; }
private function _check_vcode($item, $_POST) { if ($this->app->getConf('comment.verifyCode') != "on") { return true; } $flag = true; switch ($item) { case 'ask': if (!base_vcode::verify('ASKVCODE', $_POST['askverifyCode'])) { $flag = false; } break; case 'discuss': if (!base_vcode::verify('DISSVCODE', $_POST['discussverifyCode'])) { $flag = false; } break; case 'reply': if (!base_vcode::verify('REPLYVCODE', $_POST['replyverifyCode'])) { $flag = false; } break; } if (!$flag) { $this->splash('error', '', app::get('b2c')->_('验证码填写错误'), true); } return $flag; }
/** * 检查注册POST的数据 */ public function check_signup($data, &$msg) { $data = $this->obj_filter->check_input($data); //验证码 $valideCode = $this->app->getConf('site.register_valide'); $login_type = $this->get_login_account_type($data['pam_account']['login_name']); if ($valideCode == 'true' && $login_type != 'mobile') { if (!base_vcode::verify('LOGINVCODE', $data['signupverifycode'])) { $msg = $this->app->_('验证码填写错误'); return false; } } if ($_POST['license'] != 'on') { $msg = $this->app->_('同意注册条款后才能注册'); return false; } //检查注册账号合法性 if (!$this->check_signup_account(trim($data['pam_account']['login_name']), $msg)) { return false; } if ($login_type == 'mobile') { $res = kernel::single('b2c_user_vcode')->verify($data['vcode'], $data['pam_account']['login_name'], 'signup'); if (!$res) { $msg = $this->app->_('短信验证错误'); return false; } } //检查密码合法,是否一致 if (!$this->check_passport($data['pam_account']['login_password'], $data['pam_account']['psw_confirm'], $msg)) { return false; } return true; }
public function seller_login($userData, $vcode = false, &$msg) { $userData = utils::_filter_input($userData); //过滤xss攻击 if (!$vcode || !base_vcode::verify('passport', $vcode)) { $msg = '验证码错误'; return false; } //如果指定了登录类型,则不再进行获取(邮箱登录,手机号登录,用户名登录) if (!$userData['login_type']) { $userPassport = vmc::singleton('seller_user_passport'); $userData['login_type'] = $userPassport->get_login_account_type($userData['login_name']); } $filter = array('login_type' => $userData['login_type'], 'login_name' => $userData['login_name']); $account = app::get('seller')->model('sellers')->getList('member_id, login_name, createtime', $filter); if (!$account) { $msg = '不存在的用户'; return false; } $login_password = pam_encrypt::get_encrypted_password($userData['login_password'], 'member', array('createtime' => $account[0]['createtime'], 'login_name' => $account[0]['login_name'])); if ($account[0]['login_password'] != $login_password) { $msg = '登录密码错误'; return false; } return $account[0]['member_id']; }
public function login($userData, $vcode = false, &$msg, $type = 'b2c') { $userData = utils::_filter_input($userData); //过滤xss攻击 //快速登录不用验证码 if ($vcode != 'quick') { if (!$vcode || !base_vcode::verify('passport', $vcode)) { $msg = '验证码错误'; return false; } } //如果指定了登录类型,则不再进行获取(邮箱登录,手机号登录,用户名登录) if (!$userData['login_type']) { $userPassport = vmc::singleton('b2c_user_passport'); $userData['login_type'] = $userPassport->get_login_account_type($userData['login_account']); } $filter = array('login_type' => $userData['login_type'], 'login_account' => $userData['login_account']); $model = 'members'; $id = 'member_id'; if ($type == 'sellers') { $model = 'sellers'; $id = 'seller_id'; } $account = app::get('pam')->model($model)->getList($id . ',password_account,login_password,createtime', $filter); if (!$account) { $msg = '不存在的用户'; return false; } $login_password = pam_encrypt::get_encrypted_password($userData['login_password'], 'member', array('createtime' => $account[0]['createtime'], 'login_name' => $account[0]['password_account'])); if ($account[0]['login_password'] != $login_password) { $msg = '登录密码错误'; return false; } return $account[0][$id]; }
public function login() { if (pamAccount::isEnableVcode('desktop')) { if (!base_vcode::verify($this->app->app_id, $_POST['verifycode'])) { $msg = app::get('desktop')->_('验证码不正确!'); $this->__loginLog($msg); $url = url::route('shopadmin', array('ctl' => 'passport', 'act' => 'index', 'url' => input::get('redirect'), 'msg' => urlencode($msg))); echo "<script>location ='{$url}'</script>"; exit; } } try { kernel::single('desktop_passport')->login(input::get()); $msg = app::get('desktop')->_('验证成功'); $this->__loginLog($msg); } catch (Exception $e) { $msg = $e->getMessage(); $this->__loginLog($msg); $url = url::route('shopadmin', array('ctl' => 'passport', 'act' => 'index', 'url' => input::get('redirect'), 'msg' => urlencode($msg))); echo "<script>location ='{$url}'</script>"; exit; } $params['member_id'] = pamAccount::getAccountId(); $params['uname'] = pamAccount::getLoginName(); foreach (kernel::servicelist('desktop_login_listener') as $service) { $service->listener_login($params); } if (input::get('remember') === "true") { setcookie('pam_passport_basic_uname', input::get('uname'), time() + 365 * 24 * 3600, '/'); } else { setcookie('pam_passport_basic_uname', '', 0, '/'); } if ($_COOKIE['autologin'] > 0) { kernel::single('base_session')->set_cookie_expires($_COOKIE['autologin']); //如果自动登录,设置cookie过期时间,单位:分 } if ($_COOKIE['S']['SIGN']['AUTO'] > 0) { $minutes = 10 * 24 * 60; kernel::single('base_session')->set_cookie_expires($minutes); } header('Location:' . base64_decode(str_replace('%2F', '/', urldecode(input::get('redirect')))) . $url); exit; }
/** * 认证用户名密码以及验证码等 * @param object $auth pam_auth对象 * @param array $usrdata 认证提示信息 * @return bool|int返回认证成功与否 */ function login($auth, &$usrdata) { if ($auth->is_enable_vcode()) { $key = $auth->appid; if (!base_vcode::verify($key, intval($_POST['verifycode']))) { $usrdata['log_data'] = app::get('pam')->_('验证码不正确!'); $_SESSION['error'] = app::get('pam')->_('验证码不正确!'); return false; } } $password_string = pam_encrypt::get_encrypted_password($_POST['password'], $auth->type, array('login_name' => $_POST['uname'])); if (!$_POST['uname'] || !$password_string || $_POST['password'] !== '0' && !$_POST['password']) { $usrdata['log_data'] = app::get('pam')->_('验证失败!'); $_SESSION['error'] = app::get('pam')->_('用户名或密码错误'); $_SESSION['error_count'][$auth->appid] = $_SESSION['error_count'][$auth->appid] + 1; return false; } $rows = app::get('pam')->model('account')->getList('*', array('login_name' => $_POST['uname'], 'login_password' => $password_string, 'account_type' => $auth->type, 'disabled' => 'false'), 0, 1); if ($rows[0]) { if ($_POST['remember'] === "true") { setcookie('pam_passport_basic_uname', $_POST['uname'], time() + 365 * 24 * 3600, '/'); } else { setcookie('pam_passport_basic_uname', '', 0, '/'); } $usrdata['log_data'] = app::get('pam')->_('用户') . $_POST['uname'] . app::get('pam')->_('验证成功!'); unset($_SESSION['error_count'][$auth->appid]); if (substr($rows[0]['login_password'], 0, 1) !== 's') { $pam_filter = array('account_id' => $rows[0]['account_id']); $string_pass = md5($rows[0]['login_password'] . $rows[0]['login_name'] . $rows[0]['createtime']); $update_data['login_password'] = '******' . substr($string_pass, 0, 31); app::get('pam')->model('account')->update($update_data, $pam_filter); } return $rows[0]['account_id']; } else { $usrdata['log_data'] = app::get('pam')->_('用户') . $_POST['uname'] . app::get('pam')->_('验证失败!'); $_SESSION['error'] = app::get('pam')->_('用户名或密码错误'); $_SESSION['error_count'][$auth->appid] = $_SESSION['error_count'][$auth->appid] + 1; return false; } }
function sendMsgToOpt() { $url = $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_message', 'act' => 'index')); $msgshow = $this->app->getConf('message_verifyCode') ? $this->app->getConf('message_verifyCode') : "on"; if ($msgshow === "on") { if (!base_vcode::verify('MESSAGEVCODE', intval($_POST['verifyCode']))) { $this->splash('failed', $url, __('验证码填写错误')); } } if ($this->app->getConf('system.message.open') == "on") { $_POST['display'] = "true"; } else { $_POST['display'] = "false"; } $member_data = $this->get_current_member(); $objMessage = kernel::single('b2c_message_message'); $_POST['ip'] = $_SERVER["REMOTE_ADDR"]; if ($objMessage->send($_POST, $member_data)) { $this->splash('success', $url, __('发表成功!')); } else { $this->splash('failed', $url, __('发表失败!')); } }
public function bindSignupUser() { $params = input::get(); $verifyCode = $params['verifycode']; $verifyKey = $params['vcodekey']; $loginName = $params['pam_account']['login_name']; $password = $params['pam_account']['login_password']; $confirmedPassword = $params['pam_account']['psw_confirm']; if (!$verifyKey || empty($verifyCode) || !base_vcode::verify($verifyKey, $verifyCode)) { $msg = app::get('topc')->_('验证码填写错误'); return $this->splash('error', null, $msg, true); } try { $userId = userAuth::signUp($loginName, $password, $confirmedPassword); userAuth::login($userId, $loginName); kernel::single('pam_trust_user')->bind(userAuth::id()); $url = url::action('topc_ctl_default@index'); return $this->splash('success', $url, $msg, true); } catch (\Exception $e) { $msg = $e->getMessage(); return $this->splash('error', null, $msg, true); } }
function toReply($comment_id = null) { if ($_POST['shaidan_noajax'] == 'true') { $shaidan_noajax = false; } else { $shaidan_noajax = true; } if (!$comment_id) { header('Content-Type:text/jcmd; charset=utf-8'); echo '{error:"' . app::get('b2c')->_('参数错误') . '",_:null}'; exit; } $member_data = $this->get_current_member(); $objComment = kernel::single('b2c_message_disask'); $aComment = $objComment->dump($comment_id); $url = $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_product', 'act' => 'index', 'arg' => $aComment['type_id'])); if ($_POST['shaidan_comment_id']) { $url = $this->gen_url(array('app' => 'shaidan', 'ctl' => 'site_comment', 'act' => 'shaidanItem', 'arg' => $_POST['shaidan_comment_id'], 'arg1' => $_POST['shaidan_goods_id'])); } if (!$aComment) { header('Content-Type:text/jcmd; charset=utf-8'); echo '{error:"' . app::get('b2c')->_('记录为空') . '",_:null}'; exit; } if ($this->app->getConf('comment.verifyCode.' . 'ask') == "on" && $shaidan_noajax) { if (!base_vcode::verify('REPLYVCODE', intval($_POST['replyverifyCode']))) { header('Content-Type:text/jcmd; charset=utf-8'); echo '{error:"' . app::get('b2c')->_('验证码填写错误') . '",_:null}'; exit; } } if (!$objComment->toValidate($aComment['object_type'], $aComment['goods_id'], $member_data, $message)) { if (!$shaidan_noajax) { $this->splash('failed', 'back', $message, '', '', $shaidan_noajax); } else { header('Content-Type:text/jcmd; charset=utf-8'); echo '{error:"' . $message . '",_:null}'; exit; } } else { $aData['comment'] = $_POST['comment']; $aData['hidden_name'] = $_POST['hidden_name']; $aData['type_id'] = $aComment['type_id']; $aData['for_comment_id'] = $comment_id; $aData['author_id'] = $member_data['member_id'] ? $member_data['member_id'] : 0; $aData['mem_read_status'] = $this->member['member_id'] == $aComment['author_id'] ? 'false' : 'true'; $aData['object_type'] = $aComment['object_type']; $aData['author'] = $member_data['uname'] ? $member_data['uname'] : app::get('b2c')->_('非会员顾客'); $aData['contact'] = $_POST['contact'] == '' ? $member_data['email'] : $_POST['contact']; $aData['to_id'] = $aComment['to_id']; $aData['time'] = time(); $aData['lastreply'] = time(); $aData['reply_name'] = $aData['author']; $aData['display'] = $this->app->getConf('comment.display.' . $aComment['object_type']) == 'soon' ? 'true' : 'false'; if ($objComment->send($aData, $aComment['object_type'])) { $comments = $this->app->model('member_comments'); if ($aComment['object_type'] == 'discuss') { $comments->fireEvent('discussreply', $aData, $aData['author_id']); } elseif ($aComment['object_type'] == 'ask') { $comments->fireEvent('gaskreply', $aData, $aData['author_id']); } $this->splash('success', $url, app::get('b2c')->_('发表成功!'), '', '', $shaidan_noajax); } else { $this->splash('failed', 'back', app::get('b2c')->_('发表失败!'), '', '', $shaidan_noajax); } } }
public function create() { $data = utils::_filter_input(input::get()); $codyKey = $data['key']; $verifycode = $data['verifycode']; $userInfo = $data['pam_user']; $vcode = $data['vcode']; //数据检测 $validator = validator::make(['loginAccount' => $userInfo['account'], 'license' => input::get('license'), 'password' => $userInfo['password'], 'password_confirmation' => $userInfo['pwd_confirm']], ['loginAccount' => 'required', 'license' => 'required', 'password' => 'min:6|max:20|confirmed', 'password_confirmation' => 'required'], ['loginAccount' => '请输入用户名!', 'license' => '请阅读并接受会员注册协议!', 'password' => '密码长度不能小于6位!|密码长度不能大于20位!|输入的密码不一致!', 'password_confirmation' => '确认密码不能为空!']); if ($validator->fails()) { $messages = $validator->messagesInfo(); foreach ($messages as $error) { throw new LogicException($error[0]); } } try { $accountType = kernel::single('pam_tools')->checkLoginNameType($userInfo['account']); if ($accountType == "mobile") { $vcodeData = userVcode::verify($vcode, $userInfo['account'], 'signup'); if (!$vcodeData) { throw new \LogicException(app::get('topc')->_('手机验证码错误')); } } else { if (empty($verifycode) || !base_vcode::verify($codyKey, $verifycode)) { throw new \LogicException(app::get('topc')->_('验证码填写错误')); } } $userId = userAuth::signUp($userInfo['account'], $userInfo['password'], $userInfo['pwd_confirm']); userAuth::login($userId, $userInfo['account']); } catch (Exception $e) { $msg = $e->getMessage(); return $this->splash('error', $url, $msg, true); } // 跳成功页 $url = url::action('topc_ctl_passport@signupSuccess', ['next_page' => $this->__getFromUrl()]); return $this->splash('success', $url, null, true); }
function gc_dopayment($pay_object = 'giftcard') { $this->path[] = array('title' => app::get('b2c')->_('会员中心'), 'link' => $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'index', 'full' => 1))); $this->path[] = array('title' => app::get('b2c')->_('我的预存款'), 'link' => '#'); if ($_POST['is_store'] == 1) { $this->begin($this->gen_url(array('app' => 'b2c', 'ctl' => 'site_cart')) . "?type=x"); } else { $this->begin($this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'giftcard', 'arg0' => time()))); } //验证验证码 if ($_POST["verifycode"]) { if (!base_vcode::verify('GIFTCARDCODE', $_POST['verifycode'])) { $msg = app::get('b2c')->_("验证码输入错误!"); $this->splash('failed', $url, $msg); exit; } } if ('giftcard' == $pay_object) { $memMdl = $this->app->model('members'); $giftcardMdl = app::get('b2c')->model('member_giftcard'); $gcard_code = $_POST['giftcard']['gcard_code']; $member_id = $this->app->member_id; if ($memMdl->gc_validate($gcard_code, $msg)) { //验证成功清除session $_SESSION['giftcard'][$member_id] = 0; //处理充值 $gc_info = $giftcardMdl->getList('*', array('gcard_code' => $gcard_code)); $gc_info = $gc_info[0]; $advanceMdl = app::get('b2c')->model('member_advance'); $pam_account = app::get('pam')->model('account'); $account = $pam_account->getList("login_name", array('account_id' => $member_id)); $u_name = $account[0]['login_name']; $message = '充值券充值,券号:' . $gcard_code; //标记充值券已使用 $is_true = $giftcardMdl->update(array('used_status' => 'true', 'uname' => $u_name, 'used_time' => time()), array('gcard_code' => $gcard_code)); $affect_row = $advanceMdl->db->affect_row(); if ($is_true) { //开始事务 $db = kernel::database(); $transaction_status = $db->beginTransaction(); if ($affect_row) { $db->commit($transaction_status); //金额写入预存款 $branch_id = intval($_SESSION['local_store']['branch_id']); $rerurn = $advanceMdl->add($member_id, $gc_info['gcard_money'], $message, $errMsg, '', '', 'chongzhiquan', '', 0, true, $branch_id); if ($rerurn) { // 增加经验值 $obj_member = $this->app->model('members'); $obj_member->change_exp($member_id, floor($gc_info['gcard_money'])); $this->end(true, app::get('b2c')->_('充值券充值成功!')); } else { $db->rollback(); $this->end(false, $errMsg); } } else { $db->rollback(); $this->end(false, app::get('b2c')->_('您发出了重复的请求,该请求只能生效一次!')); } } else { //事件回滚 $db->rollback(); $this->end(false, app::get('b2c')->_('充值券状态更新失败!')); } } else { $this->end(false, $msg); } } }
private function _signup_post($post, $step) { extract($post); $forward = $this->gen_url(array('app' => 'seller', 'ctl' => 'site_passport', 'act' => 'signup', 'args' => array($step))); $signup_url = $this->gen_url(array('app' => 'seller', 'ctl' => 'site_passport', 'act' => 'signup', 'args' => array($forward))); // 仅手机注册 if (!base_vcode::verify('sellerpassport', $vcode)) { $this->splash('error', $signup_url, '验证码不正确'); } $return = false; switch ($step) { case 1: $return = $this->_signupOne($post, $signup_url); break; case 2: $return = $this->_signupTwo($post); break; case 3: $return = $this->_signupThree($post); break; case 4: $return = $this->_signupFour($post); break; } if ($return) { $this->splash('success', $forward, '注册成功'); } else { $this->splash('error', $signup_url, '注册失败,会员数据保存异常'); } }
/** * create * 创建会员. */ public function create() { $params = $_POST; $forward = $params['forward']; if (!$forward) { $forward = $this->gen_url(array('app' => 'site', 'ctl' => 'default')); //PC首页 } unset($_POST['forward']); $signup_url = $this->gen_url(array('app' => 'b2c', 'ctl' => 'mobile_passport', 'act' => 'signup', 'args' => array($forward))); $login_type = $this->passport_obj->get_login_account_type($params['pam_account']['login_name']); if ($login_type == 'mobile' && !vmc::singleton('b2c_user_vcode')->verify($params['vcode'], $params['pam_account']['login_name'], 'signup')) { $this->splash('error', $signup_url, '手机短信验证码不正确'); } elseif ($login_type != 'mobile' && !base_vcode::verify('passport', $params['vcode'])) { $this->splash('error', $signup_url, '验证码不正确'); } if (!$this->passport_obj->check_signup($params, $msg)) { $this->splash('error', $signup_url, $msg); } $member_sdf_data = $this->passport_obj->pre_signup_process($params); if ($member_id = $this->passport_obj->save_members($member_sdf_data, $msg)) { $this->user_obj->set_member_session($member_id); $this->bind_member($member_id); /*本站会员注册完成后做某些操作!*/ foreach (vmc::servicelist('member.create_after') as $object) { $object->create_after($member_id); } $this->splash('success', $forward, '注册成功'); } else { $this->splash('error', $signup_url, '注册失败,会员数据保存异常'); } }
/** * create * 创建会员 * 采用事务处理,function save_attr 返回false 立即回滚 * @access public * @return void */ function create($next_url = null) { $mini = $_GET['mini']; //$back_url = $this->gen_url(array('app'=>'b2c','ctl'=>'site_passport','act'=>'signup')); $back_url = null; if (!preg_match('/^([@\\.]|[^\\x00-\\x2f^\\x3a-\\x40]){2,20}$/i', $_POST['pam_account']['login_name'])) { if ($mini != 1) { $this->splash('failed', $back_url, app::get('b2c')->_('用户名包含非法字符'), '', '', true); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => app::get('b2c')->_('用户名包含非法字符'))); return; } } $next_url = base64_decode($next_url); $member_model =& $this->app->model('members'); $valideCode = app::get('b2c')->getConf('site.register_valide'); if ($valideCode == 'true') { if (!base_vcode::verify('LOGINVCODE', intval($_POST['signupverifycode']))) { if ($mini != 1) { $this->splash('failed', $back_url, app::get('b2c')->_('验证码填写错误'), '', '', true); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => app::get('b2c')->_('验证码填写错误'))); return; } } } if ($_POST['license'] != 'agree') { if ($mini != 1) { $this->splash('failed', $back_url, app::get('b2c')->_('同意注册条款后才能注册'), '', '', true); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => app::get('b2c')->_('同意注册条款后才能注册'))); return; } } if (!$member_model->validate($_POST, $msg)) { if ($mini != 1) { $this->splash('failed', $back_url, $msg, '', '', true); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => $msg)); return; } } $lv_model =& $this->app->model('member_lv'); $_POST['member_lv']['member_group_id'] = $lv_model->get_default_lv(); $arrDefCurrency = app::get('ectools')->model('currency')->getDefault(); $_POST['currency'] = $arrDefCurrency['cur_code']; $_POST['pam_account']['login_name'] = strtolower($_POST['pam_account']['login_name']); $_POST['pam_account']['account_type'] = pam_account::get_account_type($this->app->app_id); $_POST['pam_account']['createtime'] = time(); $use_pass_data['login_name'] = $_POST['pam_account']['login_name']; $use_pass_data['createtime'] = $_POST['pam_account']['createtime']; $_POST['pam_account']['login_password'] = pam_encrypt::get_encrypted_password(trim($_POST['pam_account']['login_password']), pam_account::get_account_type($this->app->app_id), $use_pass_data); $_POST['reg_ip'] = base_request::get_remote_addr(); $_POST['regtime'] = time(); $_POST['contact']['email'] = htmlspecialchars($_POST['contact']['email']); $db = kernel::database(); $db->beginTransaction(); //--防止恶意修改 foreach ($_POST as $key => $val) { if (strpos($key, "box:") !== false) { $aTmp = explode("box:", $key); $_POST[$aTmp[1]] = serialize($val); } } $arr_colunm = array('regtime', 'member_id', 'license', 'reg_ip', 'currency', 'contact', 'profile', 'pam_account', 'forward', 'member_lv'); $attr = $this->app->model('member_attr')->getList('attr_column'); foreach ($attr as $attr_colunm) { $colunm = $attr_colunm['attr_column']; $arr_colunm[] = $colunm; } foreach ($_POST as $post_key => $post_value) { if (!in_array($post_key, $arr_colunm)) { unset($_POST[$post_key]); } } //---end if ($member_model->save($_POST)) { $member_id = $_POST['member_id']; if (!$this->save_attr($member_id, $_POST, $msg)) { $db->rollBack(); if ($mini != 1) { $this->splash('failed', $back_url, $msg, '', '', true); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => $msg)); return; } } $db->commit(); $_SESSION['account'][pam_account::get_account_type($this->app->app_id)] = $member_id; $this->bind_member($member_id); foreach (kernel::servicelist('b2c_save_post_om') as $object) { $object->set_arr($member_id, 'member'); $refer_url = $object->get_arr($member_id, 'member'); } /*注册完成后做某些操作! begin*/ foreach (kernel::servicelist('b2c_register_after') as $object) { $object->registerActive($member_id); } //增加会员同步 2012-5-15 if ($member_rpc_object = kernel::service("b2c_member_rpc_sync")) { $member_rpc_object->createActive($member_id); } /*end*/ $data['member_id'] = $member_id; $data['uname'] = $_POST['pam_account']['login_name']; $data['passwd'] = $_POST['pam_account']['psw_confirm']; $data['email'] = $_POST['contact']['email']; $data['refer_url'] = $refer_url ? $refer_url : ''; $data['is_frontend'] = true; $obj_account =& $this->app->model('member_account'); $obj_account->fireEvent('register', $data, $member_id); if ($next_url) { header("Location: " . $next_url); } else { if ($mini != 1) { $this->splash('success', $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'index')), app::get('b2c')->_('注册成功'), '', '', true); } else { if (isset($_SESSION['signup_next']) && $_SESSION['signup_next']) { $signup_next = $_SESSION['signup_next']; unset($_SESSION['signup_next']); echo json_encode(array('status' => 'succ', 'url' => $signup_next, 'msg' => app::get('b2c')->_('注册成功'))); exit; } else { echo json_encode(array('status' => 'succ', 'url' => $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'index')), 'msg' => app::get('b2c')->_('注册成功'))); exit; } } } } $this->splash('failed', $back_url, app::get('b2c')->_('注册失败'), '', '', true); }
function verify() { $this->begin($this->gen_url('passport', 'login')); $member_model =& $this->app->model('members'); $verifyCode = app::get('b2c')->getConf('site.register_valide'); if ($verifyCode == "true") { if (!base_vcode::verify('LOGINVCODE', strval($_POST['loginverifycode']))) { $this->splash('failed', $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_passport', 'act' => 'index')), app::get('b2c')->_('验证码错误'), true); } } $rows = app::get('pam')->model('account')->getList('account_id', array('account_type' => 'member', 'disabled' => 'false', 'login_name' => $_POST['login'], 'login_password' => pam_encrypt::get_encrypted_password($_POST['passwd'], pam_account::get_account_type($this->app->app_id), array('login_name' => $_POST['login'])))); if ($rows) { $_SESSION['account'][pam_account::get_account_type($this->app->app_id)] = $rows[0]['account_id']; $this->bind_member($rows[0]['account_id']); $this->end(true, app::get('b2c')->_('登录成功,进入会员中心'), $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'index'))); } else { $_SESSION['login_msg'] = app::get('b2c')->_('用户名或密码错误'); $this->end(false, $_SESSION['login_msg'], $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_passport', 'act' => 'login'))); } }
/** * 联盟商注册提交 * @access public * @version 2 Jul 6, 2011 */ public function create() { //联盟商模型 $mdlUser = $this->app->model('users'); //联盟商信息 $user = $_POST['user']; //联盟商网站信息 $web = $_POST['web']; //失败路径 //$backUrl = $this->gen_url(array('app' => 'cps', 'ctl' => 'site_user', 'act' => 'register')); //用户名非法字符检查 if (!preg_match('/^([@\\.]|[^\\x00-\\x2f^\\x3a-\\x40]){2,20}$/i', $user['u_name'])) { $this->splash('failed', $backUrl, $this->app->_('用户名包含非法字符'), '', '', true); } //验证码验证 if (!base_vcode::verify('CPSVCODE', $_POST['verifycode'])) { $this->splash('failed', $backUrl, $this->app->_('验证码填写错误'), '', '', true); } //同意联盟协议 if ($_POST['license'] != 'agree') { $this->splash('failed', $backUrl, $this->app->_('同意联盟协议后才能注册'), '', '', true); } //检验数据 if (!$mdlUser->validate($user, $msg)) { $this->splash('failed', $backUrl, $msg, '', '', true); } unset($user['passwd_confirm']); //md5加密密码 $user['passwd'] = md5($user['password']); //用户名转为小写 $user['u_name'] = strtolower(trim($user['u_name'])); //注册ip $user['reg_ip'] = base_request::get_remote_addr(); //注册时间 $user['regtime'] = time(); //注册邮箱 $user['email'] = htmlspecialchars(trim($user['email'])); //添加union_id $user['union_id'] = $mdlUser->genUnionId(); //开启事务 $this->begin(); $pam = array('account_type' => 'cpsuser', 'login_name' => $user['u_name'], 'login_password' => $user['passwd'], 'createtime' => $user['regtime']); //pam新增 $pamId = app::get('pam')->model('account')->insert($pam); unset($user['passwd']); //联盟商id与pam id关联 $user['u_id'] = $pamId; //获取联盟商审核配置 $chk = $this->app->model('setting')->getValueByKey('userCheck'); //开启审核则为未审核状态 if ($chk == 'true') { $user['state'] = '0'; } //联盟商新增 $uId = $mdlUser->insert($user); $web['u_id'] = $uId; //联盟商网站新增 $webId = $this->app->model('userweb')->insert($web); //结束事务操作 if ($uId && $webId && $pamId) { $_SESSION['account']['cpsuser'] = $uId; $this->bindUser($uId); $this->end(true, $this->app->_('注册成功'), $this->gen_url(array('app' => 'cps', 'ctl' => 'site_welcome', 'act' => 'showUser')), '', true); } else { $this->end(false, $this->app->_('注册失败'), $this->gen_url(array('app' => 'cps', 'ctl' => 'site_user', 'act' => 'register')), '', true); } }
public function create() { $data = utils::_filter_input(input::get()); $vcode = $data['vcode']; $codyKey = $data['key']; $verifycode = $data['verifycode']; $userInfo = $data['pam_user']; try { $accountType = kernel::single('pam_tools')->checkLoginNameType($userInfo['account']); if ($accountType == "mobile") { $vcodeData = userVcode::verify($vcode, $userInfo['account'], 'signup'); if (!$vcodeData) { throw new \LogicException(app::get('topm')->_('手机验证码错误')); } } else { if (empty($verifycode) || !base_vcode::verify($codyKey, $verifycode)) { throw new \LogicException(app::get('topm')->_('验证码填写错误')); } } //检测注册协议是否被阅读选中 if (!input::get('license')) { throw new \LogicException(app::get('topm')->_('请阅读并接受会员注册协议')); } $userId = userAuth::signUp($userInfo['account'], $userInfo['password'], $userInfo['pwd_confirm']); userAuth::login($userId, $userInfo['account']); } catch (Exception $e) { $msg = $e->getMessage(); return $this->splash('error', $url, $msg, true); } $url = $this->__getFromUrl(); return $this->splash('success', $url, null, true); }
function create($next_url = null) { $mini = $_GET['mini']; $back_url = $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_passport', 'act' => 'signup')); if (!preg_match('/^([@\\.]|[^\\x00-\\x2f^\\x3a-\\x40]){2,20}$/i', $_POST['pam_account']['login_name'])) { if ($mini != 1) { $this->splash('failed', $back_url, __('用户名包含非法字符')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '用户名包含非法字符')); return; } } $next_url = base64_decode($next_url); $member_model =& $this->app->model('members'); $valideCode = app::get('b2c')->getConf('site.register_valide'); if ($valideCode == 'true') { if (!base_vcode::verify('LOGINVCODE', intval($_POST['signupverifycode']))) { if ($mini != 1) { $this->splash('failed', $back_url, __('验证码填写错误')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '验证码填写错误')); return; } } } if ($_POST['license'] != 'agree') { if ($mini != 1) { $this->splash('failed', $back_url, __('同意注册条款后才能注册')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '同意注册条款后才能注册')); return; } } $unamelen = strlen($_POST['pam_account']['login_name']); if ($unamelen < 3) { if ($mini != 1) { $this->splash('failed', $back_url, __('长度不能小于3')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '长度不能小于3')); return; } } if ($member_model->is_exists($_POST['pam_account']['login_name'])) { if ($mini != 1) { $this->splash('failed', $back_url, __('该用户名已经存在')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '该用户名已经存在')); return; } } if (!preg_match('/\\S+@\\S+/', $_POST['contact']['email'])) { if ($mini != 1) { $this->splash('failed', $back_url, __('邮件格式不正确')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '邮件格式不正确')); return; } } $passwdlen = strlen($_POST['pam_account']['login_password']); if ($passwdlen < 4) { if ($mini != 1) { $this->splash('failed', $back_url, __('密码长度不能小于4')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '密码长度不能小于4')); return; } } if ($passwdLen > 20) { if ($mini != 1) { $this->splash('failed', $back_url, __('密码长度不能大于20')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '密码长度不能大于20')); return; } } if ($_POST['pam_account']['login_password'] != $_POST['pam_account']['psw_confirm']) { if ($mini != 1) { $this->splash('failed', $back_url, __('输入的密码不一致')); } else { echo json_encode(array('status' => 'failed', 'url' => 'back', 'msg' => '输入的密码不一致')); return; } } $lv_model =& $this->app->model('member_lv'); $_POST['member_lv']['member_group_id'] = $lv_model->get_default_lv(); $arrDefCurrency = app::get('ectools')->model('currency')->getDefault(); $_POST['currency'] = $arrDefCurrency['cur_code']; $_POST['pam_account']['login_password'] = md5(trim($_POST['pam_account']['login_password'])); $_POST['pam_account']['login_name'] = strtolower($_POST['pam_account']['login_name']); $_POST['pam_account']['account_type'] = pam_account::get_account_type($this->app->app_id); $_POST['pam_account']['createtime'] = time(); $_POST['reg_ip'] = base_request::get_remote_addr(); $_POST['regtime'] = time(); $_POST['contact']['email'] = htmlspecialchars($_POST['contact']['email']); if ($member_model->save($_POST)) { $member_id = $_POST['member_id']; $_SESSION['account'][pam_account::get_account_type($this->app->app_id)] = $member_id; $this->bind_member($member_id); foreach (kernel::servicelist('b2c_save_post_om') as $object) { $object->set_arr($member_id, 'member'); $refer_url = $object->get_arr($member_id, 'member'); } if ($next_url) { header("Location: " . $next_url); } else { $data['member_id'] = $member_id; $data['uname'] = $_POST['pam_account']['login_name']; $data['passwd'] = $_POST['pam_account']['psw_confirm']; $data['email'] = $_POST['contact']['email']; $data['refer_url'] = $refer_url ? $refer_url : ''; $data['is_frontend'] = true; $obj_account =& $this->app->model('member_account'); $obj_account->fireEvent('register', $data, $member_id); if ($mini != 1) { $this->splash('success', $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'attr_page')), __('注册成功')); } else { echo json_encode(array('status' => 'plugin_passport', 'url' => $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'attr_page')))); return; } } #$this->splash(null,$this->gen_url(array('app'=>'b2c','ctl'=>'site_member','act'=>'attr_page')),__('注册成功')); } $this->splash('failed', $back_url, __('注册失败')); }
public function checkVcode() { $postData = utils::_filter_input(input::get()); if (empty($postData['verifycode']) || !base_vcode::verify('topc_unverify', $postData['verifycode'])) { $msg = app::get('topc')->_('验证码填写错误'); return $this->splash('error', null, $msg, true); } $verifyType = $postData['verifyType']; $url = url::action("topc_ctl_member@unVerifyTwo", array('verifyType' => $verifyType, 'op' => $postData['type'])); return $this->splash('success', $url, null); }
function toComment($goodsid, $item) { $member_data = $this->get_current_member(); $url = $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_product', 'act' => 'index', 'arg' => $goodsid)); // $this->begin($url); $objComment = $this->app->model('member_comments'); if ($this->app->getConf('comment.verifyCode.' . $item) == "on") { if ($item == "ask") { if (!base_vcode::verify('ASKVCODE', intval($_POST['askverifyCode']))) { $this->splash('failed', $url, __('验证码填写错误')); } } if ($item == "discuss") { if (!base_vcode::verify('DISSVCODE', intval($_POST['discussverifyCode']))) { $this->splash('failed', $url, __('验证码填写错误')); } } /* if (md5($_POST[$item.'verifyCode'])<>$_COOKIE[strtoupper($item)."_RANDOM_CODE"]){ if ($item=="ask") $stp=__("咨询"); elseif($item=="discuss") $stp=__("评论"); #$this->splash('failed','back',$stp.__('验证码录入错误,请重新输入')); echo "验证码有错误"; }*/ } $objComment = kernel::single('b2c_message_disask'); if (!$objComment->toValidate($item, $goodsid, $member_data, $message)) { $this->splash('failed', 'back', $message); //$this->end(true,__('您已经退出系统'),$url); } else { $aData['title'] = $_POST['title']; $aData['comment'] = $_POST['comment']; $aData['goods_id'] = $goodsid; $aData['object_type'] = $item; $aData['author_id'] = $member_data['member_id'] ? $member_data['member_id'] : 0; $aData['author'] = $member_data['uname'] ? $member_data['uname'] : __('非会员顾客'); $aData['contact'] = $_POST['contact'] == '' ? $member_data['email'] : $_POST['contact']; $aData['time'] = time(); $aData['lastreply'] = 0; $aData['ip'] = $_SERVER["REMOTE_ADDR"]; $aData['display'] = $this->app->getConf('comment.display.' . $item) == 'soon' ? 'true' : 'false'; if ($this->app->getConf('comment.display.' . $item) == 'soon') { $msg = $this->app->getConf('comment.submit_display_notice.' . $item); } else { $msg = $this->app->getConf('comment.submit_hidden_notice.' . $item); } if ($objComment->send($aData, $item, $message)) { $this->splash('success', $url, __($msg)); } else { $this->splash('failed', 'back', __('发表失败!')); } } }