/changleqi/core/shop/controller/ctl.passport.php
PHP | 778 lines | 670 code | 65 blank | 43 comment | 111 complexity | 0b006c854144fcfa340ea33fa1fece32 MD5 | raw file
- <?php
- /**
- * ctl_passport
- *
- * @uses shopPage
- * @package
- * @version $Id: ctl.passport.php 2035 2008-04-28 14:06:13Z alex $
- * @copyright 2003-2007 ShopEx
- * @author Wanglei <flaboy@zovatech.com>
- * @license Commercial
- */
- class ctl_passport extends shopPage{
-
- var $noCache = true;
-
- function ctl_passport(&$system){
- parent::shopPage($system);
- $this->header .= "<meta name=\"robots\" content=\"noindex,noarchive,nofollow\" />\n";
- $this->pagedata['redirectInfo'] = '';
- if(isset($_POST['form'])){
- $form = get_magic_quotes_gpc()?stripcslashes($_POST['form']):$_POST['form'];
- $this->pagedata['redirectInfo'].='<input type="hidden" name="form" value="'.htmlspecialchars($form).'" />';
- }if(isset($_REQUEST['url'])){
- $this->pagedata['redirectInfo'].='<input type="hidden" name="url" value="'.htmlspecialchars($_REQUEST['url']).'" />';
- }
- if(constant('DEBUG_JS')){
- $script_dir='script_src';
- }else{
- $script_dir='script';
- }
-
- $this->pagedata['scriptplus']='<script type="text/javascript" src="statics/'.$script_dir.'/formplus.js"></script>';
-
- }
-
- function verifyCode($type=''){
- $oVerifyCode = &$this->system->loadModel('utility/verifyCode');
- $oVerifyCode->type = $type;
- $oVerifyCode->Output(60,16,true);
- }
- function namecheck(){
- $member=&$this->system->loadModel('member/account');
- $name = trim($_POST['name']);
- if($member->check_uname($name,$message)){
- echo '<span class="fontcolorGreen"> '.__('????').'</span>';
- }else{
- echo '<span class="fontcolorRed"> '.$message.'</span>';
- }
- }
- function showValideCode($tp=''){
- switch ($tp){
- case "login":
- if($this->system->getConf('site.login_valide')){
- $this->pagedata['valideCode'] = true;
- }
- break;
- case "signup":
- if($this->system->getConf('site.register_valide')){
- $this->pagedata['valideCode'] = true;
- }
- break;
- }
-
- }
-
- function other_login(){
- $this->output();
- }
-
- function other_login_verify(){
- $sign = $_GET['sign'];
- unset($_GET['passport-other_login_verify_html']);
- unset($_GET['passport-1-other_login_verify_html']);
- unset($_GET['sign']);
- $make_sign = $this->get_ce_sign($_GET,$this->system->getConf('certificate.token'));
- if($make_sign!=$sign){
- echo "sign is error";
- exit;
- }
- $account = $this->system->loadModel('member/account');
- $result_m = $account->createotherlogin($_GET);
- if($result_m['redirect_url']){
- echo "<script>window.location=decodeURIComponent('".$result_m['redirect_url']."');</script>";
- exit;
- }else{
- echo "<script>(location.hash)?window.location=decodeURIComponent(location.hash).substr(1):location.reload();</script>";
- }
- }
-
-
- function get_ce_sign($params,$token){
- $arg="";
- ksort($params);
- reset($params);
- while (list ($key, $val) = each ($params)) {
- $arg.=$key."=".urlencode($val)."&";
- }
- $sign = md5(substr($arg,0,count($arg)-2).$token);//????????
- return $sign;
- }
-
- function index($url){
- $this->pagedata['_MAIN_'] = 'passport/login.html';
- return $this->login($url);
- if(count($_POST['form'])>0 && !$this->member && !$this->system->getConf('security.guest.enabled',false)){
- $this->pagedata['mustMember'] = true;
- }
-
- $this->showValideCode();
- switch($url){
- case 'checkout':
- $options['url'] = $this->system->mkUrl("cart","checkout");
- break;
- }
- $this->pagedata['options'] = $options;
- $this->output();
- }
-
- function login($url,$error_msg=''){
- $this->system->toUcApp('login');
- //$error_msg = urldecode( $error_msg );
- $passport = $this->system->loadModel('member/passport');
- if ($obj=$passport->function_judge('ServerClient')){
- $type = $obj->ServerClient('login');
- }
-
-
-
- $this->showValideCode('login');
- switch($url){
- case 'checkout':
- $options['url'] = $this->system->mkUrl("cart","checkout");
- break;
- }
- $this->pagedata['LogInvalideCode'] = $this->pagedata['valideCode'];
- $this->title = __('????');
- $this->pagedata['ref_url'] = str_replace(array('_',',','~'),array('+','/','='),base64_decode($url));
- $baseurl='http://'.$_SERVER['HTTP_HOST'].substr(PHP_SELF, 0, strrpos(PHP_SELF, '/') + 1);
-
-
- if(!strpos($baseurl.'?member',$_SERVER['HTTP_REFERER'])&&$url==""){
- $this->pagedata['ref_url'] = $_SERVER['HTTP_REFERER'];
- }
- if(($_SERVER['HTTP_REFERER']==$this->system->mkUrl("passport","login")&&$error_msg=="")||$_SERVER['HTTP_REFERER']==$this->system->mkUrl("passport","sendPSW")||$_SERVER['HTTP_REFERER'] ==$this->system->mkUrl("passport","signup")||$_SERVER['HTTP_REFERER']==""){
- $this->pagedata['ref_url'] = $this->system->mkUrl('member');
- }
- if($error_msg!=''){
- $this->pagedata['err_msg'] =str_replace(array('_',',','~'),array('+','/','='),base64_decode($error_msg));
- }
- $this->pagedata['options'] = $options;
- $this->pagedata['forward'] = $_REQUEST['forward'];
- $this->pagedata['loginName'] = $_COOKIE['loginName'];
- $appmgr = $this->system->loadModel('system/appmgr');
- if($appmgr->openid_loglist()){
- $this->pagedata['openid_open'] = true;
- }
- if($_GET['mini_passport']){
- $this->pagedata['mini']=1;
- $this->__tmpl = 'passport/index/login.html';
- $login_plugin = $appmgr->getloginplug();
- foreach($login_plugin as $key =>$value){
- $object = $appmgr->instance_loginplug($value);
- if(method_exists($object,'getMiniHtml')){
- $this->pagedata['mini_login_content'][] = $object->getMiniHtml();
- }
- }
-
- }else{
- $login_plugin = $appmgr->getloginplug();
- foreach($login_plugin as $key =>$value){
- $object = $appmgr->instance_loginplug($value);
- if(method_exists($object,'getHtml')){
- $this->pagedata['login_content'][] = $object->getHtml();
- }
- }
- }
-
- $this->output();
- }
-
- function signup($url,$forward=''){
- $this->system->toUcApp('register');
- $passport = &$this->system->loadModel('member/passport');
- if ($obj=$passport->function_judge('ServerClient')){
- $type = $obj->ServerClient('signup');
- }
- $this->showValideCode('signup');
- switch($url){
- case 'checkout':
- $options['url'] = $this->system->mkUrl("cart","checkout");
- break;
- }
- $this->title = __('????');
- $this->pagedata['options'] = $options;
- $this->pagedata['forward'] = $_REQUEST['forward'];
- $this->pagedata['SignUpvalideCode'] = $this->pagedata['valideCode'];
- if($_GET['mini_passport']){
- $this->__tmpl = 'passport/index/signup_fast.html';
- $appmgr = $this->system->loadModel('system/appmgr');
- $login_plugin = $appmgr->getloginplug();
- foreach($login_plugin as $key =>$value){
- $object = $appmgr->instance_loginplug($value);
- if(method_exists($object,'getRegistHtml')){
- $this->pagedata['regist_content'][] = $object->getRegistHtml();
- }
- }
- }
-
- $this->output();
- }
-
- function lost($url){
- $this->showValideCode();
-
- switch($url){
- case 'checkout':
- $options['url'] = $this->system->mkUrl("cart","checkout");
- break;
- }
- $this->pagedata['options'] = $options;
- $this->output();
- }
-
- function splash($status, $url, $msg, $links='', $wait=1, $json=false){
- if($json){
- echo json_encode(array('status'=>$status, 'url'=>$url, 'msg'=>$msg));
- exit();
- }else{
- parent::splash($status, $url, $msg, $links, $wait);
- }
- }
-
- function testApp(){
- echo $this->system->getConf('coupon.code.count_len');exit;
- $pObj = &$this->system->loadModel('member/passport');
- if ($obj = $pObj->function_judge('userLoginToApp')){
- $loginfo = $obj->userLoginToApp(70,'testname','889900','sdfsd@dd.com');
- //error_log()
- //echo $loginfo;exit;
- }
- }
-
- function create(){
- $account = &$this->system->loadModel('member/account');
- $passport=&$this->system->loadModel('member/passport');
- if ($obj=$passport->function_judge('getPlugCookie')){
- if ($ck=$obj->getPlugCookie()){
- $common = 1;
- if ($_REQUEST['plugUrl']){
- $common=0;
- }
- }else{
- $common = 1;
- }
- }else{
- $common = 1;
- }
-
- if ($common){
- if($this->system->getConf('site.register_valide')){
- if($_COOKIE["S_RANDOM_CODE"]!=md5($_POST['signupverifycode'])){
- $this->splash('failed','back',__('?????????????'),'','',$_POST['from_minipassport']);
- }
- }
-
- $passwdLen=strlen($_POST['passwd']);
- if($_POST['license']!='agree'){
- $this->splash('failed','back',__('???????????'),'','',$_POST['from_minipassport']);
- }elseif(!preg_match('/\S+@\S+/',$_POST['email'])){
- $this->splash('failed','back',__('???????'),'','',$_POST['from_minipassport']);
- }elseif($passwdLen<4){
- $this->splash('failed','back',__('????????4'),'','',$_POST['from_minipassport']);
- }elseif($passwdLen>20){
- $this->splash('failed','back',__('????????20'),'','',$_POST['from_minipassport']);
- }
- if($sCheck = $account->checkMember($_POST)){
- // if($sCheck == 1)
- $sError = __('????????');
- // else
- // $sError = __('?Email????');
- $this->splash('failed','back',$sError,'','',$_POST['from_minipassport']);
- exit;
- }else{
- $o_passwd= $_POST['passwd'];
- $o_email= $_POST['email'];
- $pObj = &$this->system->loadModel('member/passport');
- if ($obj = $pObj->function_judge('checkuserregister')){
- $sRes = $obj->checkuserregister($_POST['uname'],$_POST['passwd'],$_POST['email'],$uid,$message);
- if ($sRes){
- if (!empty($message)){
- $this->splash('failed','back',$message,'','',$_POST['from_minipassport']);
- exit;
- }else{
- if($_REQUEST['forward']) $url = $_REQUEST['forward'].DEFAULT_INDEX;
- else $url = $this->system->request['base_url'].DEFAULT_INDEX;
- if ($info = $account->createUserFromPluin($_POST,$message,$uid)){
- // BEGIN ???? by yangbing 2010-8-17 19:47
- if($_COOKIE['CLQ_R_ID']){
- $inviter_mid = intval($_COOKIE['CLQ_R_ID']);
- $rid = $this->db->selectrow('SELECT member_id FROM sdb_members where member_id='.$inviter_mid);
- if($rid){
- $data['inviter_mid'] = $inviter_mid;
- }
- }
- // END
- $this->system->setCookie('MEMBER',$info['secstr'],null);
- $this->system->setCookie('UNAME',$info['uname'],null);
- $this->system->setCookie('MLV',$info['member_lv_id'],null);
- $GLOBALS['runtime']['member_lv'] = $info['member_lv_id'];
- $this->system->setCookie('CUR',$info['cur'],null);
- $this->system->setCookie('LANG',$info['lang'],null);
- //$oPassport = $this->system->loadModel('member/passport');
- $login_info = $info;
- //userLoginToApp($uid,$uname,$password,$email){
- $info['member_id']=$info['foreign_id']?$info['foreign_id']:$info['member_id'];
- $loginfo = $obj->userLoginToApp($uid,$_POST['uname'],$_POST['passwd'],$_POST['email']); // ???????? by yangbing 2010-8-17 9:15
- $this->header .= $loginfo;
- $oCart = &$this->system->loadModel('trading/cart');
- $oCart->memberLogin = false;
- $cartCookie = $oCart->getCart();
- $oCart->checkMember($login_info);
- $oCart->memberLogin = true;
- $oCart->save('all', $cartCookie);
- $this->system->setcookie($oCart->cookiesName,'');
- if ($_POST['regType']=='buy'){
- $mem_obj_m = $this->system->loadModel('member/member');
- $tmp_mem = $mem_obj_m->getMemIdByName($_POST['uname']);
- $info['member_id']= $tmp_mem[0]['member_id'];
- if($_POST['isfastbuy'])$redi_url = $this->system->mkUrl('cart','checkout',array(1));
- else $redi_url = $this->system->mkUrl('cart','checkout');
- $this->splash('success',$redi_url,__('??????????'),'',1,$_POST['from_minipassport']);
- }
- }
- else
- $this->splash('failed','back',$message,'','',$_POST['from_minipassport']);
- }
- }
- }else{
-
- if($_REQUEST['forward']) $url = $_REQUEST['forward'].DEFAULT_INDEX;
- else $url = $this->system->request['base_url'].DEFAULT_INDEX;
- if($info = $account->create($_POST,$message)){
- // BEGIN ???? by yangbing 2010-8-17 19:47
- if($_COOKIE['CLQ_R_ID']){
- $inviter_mid = intval($_COOKIE['CLQ_R_ID']);
- $rid = $this->db->selectrow('SELECT member_id FROM sdb_members where member_id='.$inviter_mid);
- if($rid){
- $data['inviter_mid'] = $inviter_mid;
- }
- }
- // END
- $this->system->setCookie('MEMBER',$info['secstr'],null);
- $this->system->setCookie('UNAME',$info['uname'],null);
- $this->system->setCookie('MLV',$info['member_lv_id'],null);
- $GLOBALS['runtime']['member_lv'] = $info['member_lv_id'];
- $this->system->setCookie('CUR',$info['cur'],null);
- $this->system->setCookie('LANG',$info['lang'],null);
- $oCart = &$this->system->loadModel('trading/cart');
- $cartCookie = $oCart->getCart();
- $oCart->checkMember($info);
- $oCart->memberLogin = true;
- $oCart->save('all', $cartCookie);
- $this->system->setcookie($oCart->cookiesName,'');
- if($_POST['regType'] == 'buy'){
- $this->system->setcookie($oCart->cookiesName,'');
- if($_POST['isfastbuy'])$redi_url = $this->system->mkUrl('cart','checkout',array(1));
- else $redi_url = $this->system->mkUrl('cart','checkout');
- $this->splash('success',$redi_url,__('??????????'),'',1,$_POST['from_minipassport']);
- }
- else{
- $oPassport = &$this->system->loadModel('member/passport');
-
- if ($opbj = $oPassport->function_judge('setPlugCookie'))
- $opbj->setPlugCookie(0);
- if ($_REQUEST['forward']){
-
- $registinfo = $oPassport->regist($info['member_id'],$url);
- $this->nowredirect('plugin_passport', $registinfo,'',$_POST['from_minipassport']);
- }else{
-
- if ($_POST['forward']){
- $url='';
- }
- $registinfo = $oPassport->regist($info['member_id'],$url);
- //$this->nowredirect('plugin_passport', $registinfo,'',$_POST['from_minipassport']);
- }
- }
- }else{
- $this->splash('failed','back',$message,'','',$_POST['from_minipassport']);
- }
- }
- }
- }else{
-
- if ($obj=$passport->function_judge('setPlugCookie'))
- $obj->setPlugCookie(0);
- if($_POST['from_minipassport']){
- echo 'success';
- exit;
- }
- }
- $oMem = &$this->system->loadModel('member/member');
- $mematt = &$this->system->loadModel('member/memberattr');
- //???????
- $filter['attr_show'] = 'true';
- $tmpdate =$mematt->getList('*',$filter,0,-1,array('attr_order','asc'));
-
- for($i=0;$i<count($tmpdate);$i++){
- if($tmpdate[$i]['attr_type'] == 'select'||$tmpdate[$i]['attr_type'] == 'checkbox'){
- $tmpdate[$i]['attr_option'] = unserialize($tmpdate[$i]['attr_option']);
- }
- }
- if($_POST['from_minipassport']){
- echo 'success';
- }else{
- $this->pagedata['passwd'] = $o_passwd;
- $this->pagedata['email'] = $o_email;
- $this->pagedata['tree'] = $tmpdate;
- $this->pagedata['plugUrl'] = $_REQUEST['plugUrl']?$_REQUEST['plugUrl']:$_COOKIE['plugUrl'];
- $this->output();
- }
- }
-
- function recover(){
- $member=&$this->system->loadModel('member/member');
- $this->pagedata['data']=$member->getMemberByUser($_POST['login']);
- if(empty($this->pagedata['data']['member_id'])){
- $this->splash('failed','back',__('???????'));
- }
- if($this->pagedata['data']['disabled'] == "true"){
- $this->splash('failed','back',__('???????????'));
- }
- $this->output();
- }
-
- function sendPSW(){
- $this->begin($this->system->mkUrl('passport','lost'));
- $member=&$this->system->loadModel('member/member');
- $data=$member->getMemberByUser($_POST['uname']);
- if(($data['pw_answer']!=$_POST['pw_answer']) || ($data['email']!=$_POST['email'])){
- $this->end(false,__('??????????????????'),$this->system->mkUrl('passport','lost'));
- }
-
- if( $data['member_id'] < 1 ){
- $this->end(false,__('??????'),$this->system->mkUrl('passport','lost'));
- }
-
- $messenger = &$this->system->loadModel('system/messenger');echo microtime()."<br/>";
- $passwd = substr(md5(print_r(microtime(),true)),0,6);
-
- $pObj=$this->system->loadModel('member/passport');
- if ($obj=$pObj->function_judge('edituser')){
- $res = $obj->edituser($data['uname'],'',$passwd,$data['email'], '1');
- if ($res>0){
- $member->update(array('password'=>md5($passwd)),array('member_id'=>intval($data['member_id'])));
- }
- else{
- trigger_error('?????????????', E_USER_ERROR);
- return false;
- }
- }else{
- $member->update(array('password'=>md5($passwd)),array('member_id'=>intval($data['member_id'])));
- }
-
- $data['passwd'] = $passwd;
- $memberObj = &$this->system->loadModel('member/account');
- $memberObj->fireEvent('lostPw',$data,$data['member_id']);
-
- $this->end(true,__('??????'),$this->system->mkUrl('passport','index'));
- }
-
- /*???????????*/
- function error(){
- $url = $this->system->request['url_prefix'];
- $this->pagedata['nexturl'] = $url;
- $this->header.="\n<meta http-equiv=\"refresh\" content=\"3; url={$url}\">\n";
- $this->output();
- }
-
- //??
- function logout(){
- $this->system->toUcApp('logout');
- $passport = &$this->system->loadModel('member/passport');
- if ($obj=$passport->function_judge('ServerClient')){
- $obj->ServerClient('logout');
- }
- $this->_verifyMember(false);
-
- $this->system->setCookie('MEMBER', '', time()-1000);
- $this->system->setCookie('MLV', '', time()-1000);
- $GLOBALS['runtime']['member_lv'] = -1;
- $this->system->setCookie('CART', '', time()-1000);
- $this->system->setCookie('CART_COUNT', '', time()-1000);
- $this->system->setCookie('UNAME', '', time()-1000);
- if($_COOKIE['LOGIN_TYPE']){
- $appmgr = $this->system->loadModel("system/appmgr");
- $app_model = $appmgr->load("openid_".$_COOKIE['LOGIN_TYPE']);
- if(method_exists($app_model,'openid_logout')){
- $app_model->openid_logout($user);
- }
- $this->system->setCookie('LOGIN_TYPE', '', time()-1000);
- }
- if($_REQUEST['forward']) $url = $_REQUEST['forward'].DEFAULT_INDEX;
- else $url = $this->system->request['base_url'].DEFAULT_INDEX;
- if ($_REQUEST['forward']) $url='';
- $oPassport = &$this->system->loadModel('member/passport');
- $logoutinfo = $oPassport->logout($this->member['member_id'],$url);
-
- if ($logoutinfo){
- $this->header.=$logoutinfo;
- $this->splash('success',$this->system->base_url().DEFAULT_INDEX,__('????????????'));
- }else{
- $baseurl='http://'.$_SERVER['HTTP_HOST'].substr(PHP_SELF, 0, strrpos(PHP_SELF, '/') + 1);
- $this->system->location($this->system->base_url());
- }
- }
-
- function nowredirect($status='success',$url,$msg="",$json=false){
- if($status!='failed'){
- if($json){
- echo json_encode(array('status'=>$status, 'url'=>$url));
- }else{
- header('Location: '.$url);
- }
- }else{
- if($json){
- echo json_encode(array('status'=>'failed', 'msg'=>$msg));
- exit;
- }else{
- $url = $this->system->mkUrl('passport','login',array($url,base64_encode(str_replace(array('+','/','='),array('_',',','~'),$msg))));
- header('Location: '.$url);
- exit;
- }
- }
- }
- function verify($passport='local'){
- if($passport!='local'){
- $appmgr = $this->system->loadModel('system/appmgr');
- $pass = $appmgr ->getlgplugbyname($passport);
- if($pass){
- $p_object = $appmgr->instance_loginplug($pass);
- if(method_exists($p_object,'callback')){
- $p_object->callback();
- }else{
- echo '????????????';
- exit;
- }
- }
- }
-
- if($this->system->getConf('site.login_valide')&&$passport=='local'){
- if($_COOKIE["L_RANDOM_CODE"]!=md5($_POST['loginverifycode'])){
- $this->nowredirect('failed',base64_encode(str_replace(array('+','/','='),array('_',',','~'),$_POST['ref_url'])),__('?????????????'),$_POST['from_minipassport']);
- }
- }
-
- $memberObj = &$this->system->loadModel('member/account');
- $this->system->setCookie('loginName',$_POST['login']);
- $pObj=&$this->system->loadModel('member/passport');
- if ($obj=$pObj->function_judge('check_login')){
-
- $uinfo = $obj->check_login($_POST['login'],$_POST['passwd'],2);
- if($uinfo[0]>0){
- return $this->_checkusername($uinfo[1],$uinfo[2],$_POST['forward'],$uinfo[0],$uinfo[3]);
- }elseif($uinfo[0] == '-1'){
- $msg = '?????';
- }elseif($uinfo[0] == '-2'){
- $msg = '??????????????';
- }elseif($uinfo[0] == '-3'){
- $msg = '??????';
- }
- $this->nowredirect('failed',base64_encode(str_replace(array('+','/','='),array('_',',','~'),$_POST['ref_url'])),__($msg));
- exit();
- /*
- var_dump($uinfo);exit;
- if ((is_array($uinfo)&&intval($uinfo[0])>0)||$info = $memberObj->verifyLogin($_POST['login'],$_POST['passwd'],$message)){
- return $this->_checkusername($_POST['login'],$_POST['passwd'],$_POST['forward'],$uinfo[0],$uinfo[3]);
- }else{
- $this->nowredirect('failed',base64_encode(str_replace(array('+','/','='),array('_',',','~'),$_POST['ref_url'])),__('??????????????'),$_POST['from_minipassport']);
- }
- */
- }
- $this->title = '';
- if($info = $memberObj->verifyLogin($_POST['login'],$_POST['passwd'],$message)){
- if(isset($_REQUEST['forward']) && $_REQUEST['forward']){
- $url = $_REQUEST['forward'].DEFAULT_INDEX;
- }elseif(isset($_POST['ref_url']) && $_POST['ref_url']){
- $url = $_POST['ref_url'];
- }else{
- $url = $this->system->base_url();
- }
- $cart_count = unserialize($info['addon']);
- $cart_count = count(explode(',',$cart_count['cart']));
- $this->system->setCookie('MEMBER',$info['secstr'],null);
- $this->system->setCookie('UNAME',$info['uname'],null);
- $this->system->setCookie('MLV',$info['member_lv_id'],null);
- $GLOBALS['runtime']['member_lv'] = $info['member_lv_id'];
- $this->system->setCookie('CUR',$info['cur'],null);
- $this->system->setCookie('LANG',$info['lang'],null);
- $this->system->setCookie('CART_COUNT',$cart_count,null);
- // ?????
- $oCart = &$this->system->loadModel('trading/cart');
- $cartCookie = $oCart->getCart();
- $oPassport = &$this->system->loadModel('member/passport');
- if($_COOKIE['CART_COUNT']){ //Cookie ?????
- //cookie????
- $oCart->checkMember($info);
- $cartDb = $oCart->getCart();
- if($cartDb){ //DB ?????
- if($this->system->mkUrl('cart','checkout')==$url){
- $url = $this->system->mkUrl('cart','index');
- }
- if($_POST['from_minipassport']){
- $aCart = $oCart->mergeCart($cartCookie, $cartDb);
- $oCart->save('all',$aCart);
- }
- $this->nowredirect('success',$this->system->mkUrl('cart','merge',array(1)).'?forward='.urlencode($url),'',$_POST['from_minipassport']);
- }else{
- $oCart->save('all', $cartCookie);
- $this->system->setcookie($oCart->cookiesName,'');
- if ($oPassport->forward){
- $loginfo = $oPassport->login($info['member_id'],$url);
- $this->nowredirect('plugin_passport', $loginfo,'',$_POST['from_minipassport']);
- //$this->header.=$loginfo;
- }else{
- // if ($_POST['forward']){
- $loginfo = $oPassport->login($info['member_id'],$url);
- $this->nowredirect('plugin_passport', $loginfo,'',$_POST['from_minipassport']);
- //$this->header.=$loginfo;
- // }
- }
- $this->nowredirect('success',$url,'',$_POST['from_minipassport']);
- }
- }else{
- $oCart->checkMember($info);
- $cartDb = $oCart->getCart();
- if ($oPassport->forward){
- $loginfo = $oPassport->login($info['member_id'],$url);
- $this->nowredirect('plugin_passport', $loginfo,'',$_POST['from_minipassport']);
- $this->header.=$loginfo;
- }else{
- $loginfo = $oPassport->login($info['member_id'],$url);
- $this->nowredirect('plugin_passport', $loginfo,'',$_POST['from_minipassport']);
- //$this->header.=$loginfo;
- }
- $this->nowredirect('success',$url,'',$_POST['from_minipassport']);
- }
- }else{
- $this->nowredirect('failed',base64_encode(str_replace(array('+','/','='),array('_',',','~'),$_POST['ref_url'])),__('??????????????'),$_POST['from_minipassport']);
- }
- }
-
-
- function ssoSignin()
- {
- $oPassport = &$this->system->loadModel('member/passport');
- return $oPassport->ssoSignin();
- }
-
- function _setLoginCookie($info)
- {
- if($info){
- $option = time()+60*60*24*30;//null;
- }else{
- $option = time() - 1000;
- }
- $this->system->setCookie('MEMBER',$info['secstr'],$option);
- $this->system->setCookie('UNAME',$info['uname'],$option);
- $this->system->setCookie('MLV',$info['member_lv_id'],$option);
- $GLOBALS['runtime']['member_lv'] = $info['member_lv_id'];
- $this->system->setCookie('CUR',$info['cur'],$option);
- $this->system->setCookie('LANG',$info['lang'],$option);
- return true;
- }
-
- function callback($type){
- $oPassport = &$this->system->loadModel('member/passport');
- $info = $oPassport->ssoSignin($type);
- $this->_succ = true;
- switch($_GET['action']){
- case 'login':
- if(!$info){
- header("location: ".$_GET['forward']);
- exit;
- }
- $this->_setLoginCookie($info);
- header("location: ".$_GET['forward']);
- exit;
- case 'logout':
- $this->_setLoginCookie($info);
- header("location: ".$_GET['forward']);
- exit;
- }
- }
-
- function getMsg(){
- return array(
- 'login'=>array('succ'=>__('????'),'fail'=>__('????')),
- 'logout'=>array('succ'=>__('????'),'fail'=>__('????'))
- );
- }
-
- function _checkusername($uname='',$passwd='',$forward='',$uid='',$email=''){
- $mem_info = $this->system->loadModel('member/member');
- $account = &$this->system->loadModel("member/account");
- $data=array(
- "uname"=>$uname,
- "passwd"=>$passwd,
- "email"=>$email
- );
- $oCart = &$this->system->loadModel('trading/cart');
- $cartCookie = $oCart->getCart();
- if($_REQUEST['forward']) $url = $_REQUEST['forward'].DEFAULT_INDEX;
- else $url = $this->system->request['base_url'].DEFAULT_INDEX;
-
- $row = $account->getMemberPluginUser($uname);
- if (!$row){
- $row = $account->createUserFromPluin($data,$message,$uid);
- }else{
- if ($row['foreign_id']<>$uid){
- $account->UpdateForeignId(array($row['member_id']=>$uid));
- }
- }
-
- $oMsg = $this->system->loadModel('resources/msgbox');
- $row['unreadmsg'] = $oMsg->getNewMessageNum($row['member_id']);
-
- $cart_count = unserialize($row['addon']);
- $cart_count = count(explode(',',$cart_count['cart']));
- $this->system->setCookie('CART_COUNT',$cart_count,null);
-
- $this->system->setCookie('MEMBER',$row['secstr'],null);
- $this->system->setCookie('UNAME',$row['uname'],null);
-
- $this->system->setCookie('MLV',$row['member_lv_id'],null);
- $GLOBALS['runtime']['member_lv'] = $row['member_lv_id'];
-
- $this->system->setCookie('CUR',$row['cur'],null);
-
- $this->system->setCookie('LANG',$row['lang'],null);
-
- $oPassport = &$this->system->loadModel('member/passport');
- $row['foreign_id']?$row['member_id'] = $row['foreign_id']:'';
- $loginfo = $oPassport->login($row['member_id'],$url);
- //error_log($row['member_id'].$loginfo,3,HOME_DIR.'/login.txt');
- $this->header.= $loginfo;
- $tmp_mem = $mem_info->getMemIdByName($uname);
- $row['member_id']= $tmp_mem[0]['member_id'];
- $oCart->checkMember($row);
- if($_POST['ref_url']) $url=$_POST['ref_url'];
- if ($_COOKIE['CART_COUNT']){
- $cartCookie = $oCart->getCart();
- if($_POST['from_minipassport']){
- $cartDb = $oCart->getCart();
- $oCart->memberLogin = false;
- $cartCookie = $oCart->getCart();
- $aCart = $oCart->mergeCart($cartCookie, $cartDb);
-
- $oCart->memberLogin = true;
- $oCart->save('all',$aCart);
- $this->system->setcookie($oCart->cookiesName,'');
- $oCart->setCartNum($aCart);
- }
- $this->nowredirect('success',$this->system->mkUrl('cart','merge',array(1)).'?forward='.urlencode($url),'',$_POST['from_minipassport']);
- //exit;
- }else{
- $oCart->save('all', $cartCookie);
- }
- $this->splash('success',$this->system->base_url().DEFAULT_INDEX,__('????????????'));
- if($_POST['from_minipassport']){
- return true;
- }else{
- $this->nowredirect('success',$url,'',$_POST['from_minipassport']);
- $this->_succ=true;
- }
- }
- }
- ?>