/**
  * 采用post提交
  * email : 邮箱
  * mobile:手机号
  * passwd:密码,8-20位
  * confirm_passwd:确认密码
  * captcha:验证码
  * 验证码生存demo:<img src="/user/Captcha.html">
  * return json array('status'=>'10001','msg'=>'注册成功')
  */
 public function execute($request)
 {
     if ($request->format == 'json') {
         $result = $this->check($request->email, $request->mobile, $request->passwd, $request->confirm_passwd, $request->captcha);
         if (true === $result) {
             $regtime = $request->REQUEST_TIME;
             $userid = Sp_Account_UniqueId::getUniqueId();
             if (false == $userid) {
                 return array('status' => '-127', 'msg' => '注册失败');
             }
             $data = array('userid' => $userid, 'email' => trim($request->email), 'mobile' => trim($request->mobile), 'pwd' => trim($request->passwd), 'regtime' => $regtime, 'regip' => $request->CLIENT_IP, 'kid' => $regtime + 10);
             $lastid = Sp_Account_Regist::storeUser($data);
             if ($lastid) {
                 $obj = $request;
                 $obj->username = $request->mobile;
                 $obj->password = $request->passwd;
                 $obj->CLIENT_IP = $request->CLIENT_IP;
                 Sp_Account_SignIn::signinFromRequest($obj);
             }
             return array('status' => '0', 'msg' => '注册成功');
         } else {
             return $result;
         }
     }
 }
 /**
  * 有post提交 
  * 采用post提交
  * return json array('status'=>'0','msg'=>'成功')
  */
 public function execute($request)
 {
     if ($request->format == 'json') {
         if ($request->type == "pwdcode") {
             //发送修改账号短信验证码
             $result = $this->checkCaptchaAndUser($request->username, $request->code, $request->type);
             if (TRUE === $result) {
                 $username = $request->username;
                 //计算验证码
                 $code = rand(100000, 999999);
                 $content = "您本次在会通网修改密码的验证码为:" . $code . ",任何人索取验证码均为咋骗,切勿泄露!此验证码会在15分钟后失效";
                 $sms = array();
                 $sms['username'] = $username;
                 $sms['content'] = $content;
                 $sms['type'] = 'pwdcode';
                 $sms['code'] = $code;
                 $sms['user_id'] = Sp_Account_SignIn::getUserIdBySignIn($username);
                 Sp_Sendmsg::send($sms);
                 return array('status' => '0', 'msg' => '发送成功');
             } else {
                 return $result;
             }
         } else {
             if ($request->type == "repwd") {
                 //修改密码
                 $result = $this->checkCodeAndUser($request->username, $request->code, 'pwdcode');
                 if (TRUE === $result) {
                     $username = $request->username;
                     //计算验证码
                     $code = rand(100000, 999999);
                     $ret = Sp_Account_User::RePwd($username, $code);
                     if ($ret) {
                         $content = "您本次修改的密码为:" . $code . ",任何人索取验证码均为咋骗,切勿泄露!此验证码会在15分钟后失效";
                         $sms = array();
                         $sms['username'] = $username;
                         $sms['content'] = $content;
                         $sms['type'] = 'repwd';
                         $sms['user_id'] = Sp_Account_SignIn::getUserIdBySignIn($username);
                         Sp_Sendmsg::send($sms);
                         return array('status' => '0', 'msg' => '发送成功');
                     } else {
                         return array('status' => '-1', 'msg' => '修改失败');
                     }
                 } else {
                     return $result;
                 }
             } else {
                 return array('status' => '-101', 'msg' => '提交参数错误');
             }
         }
     }
     // else{
     // //var_dump($list);
     // $view = new Sp_View;
     // $view->display('test/home.html');
     // }
 }
 /**
  * 有post 提交 登录
  * 采用post提交
  * return json array('status'=>'0','msg'=>'登录')
  */
 public function execute($request)
 {
     if ($request->format == 'json') {
         $result = $this->check($request->username, $request->password);
         if (TRUE === $result) {
             Loader::nocache();
             $ret = Sp_Account_SignIn::signinFromRequest($request);
             if (is_numeric($ret) && $ret > 0) {
                 return array('status' => '0', 'msg' => '登录成功');
             } else {
                 return array('status' => '-123', 'msg' => '您输入的帐号或密码有误');
             }
         } else {
             return $result;
         }
     } else {
     }
 }
    $content = '您的验证码为: [code], 任何人索取验证码均为咋骗,切勿泄露!此验证码会在15分钟后失效';
    $code = mt_rand(100000, 999999);
    Sp_Sendmsg::send(array('type' => Sp_Dictionary::getSmsType(0), 'username' => $phone, 'code' => $code, 'content' => str_replace('[code]', $code, $content)));
    return true;
}
$jsonParam = array();
$request = Request::current();
$phone = $request->phone;
// 获得手机号
$rs = checkPhone($phone);
if (is_array($rs)) {
    $jsonParam = $rs;
} else {
    // 获取短信验证码
    if ('getcode' == $request->type) {
        sendSms($phone);
        $jsonParam = array('code' => '200', 'msg' => '短信发送成功');
    } else {
        // 登陆
        $code = $request->code;
        $rs = checkLogin($code, $phone);
        if (is_array($rs)) {
            $jsonParam = $rs;
        } else {
            $user = Sp_Account_SignIn::getUserByPhone($phone);
            $jsonParam = array('code' => '200', 'msg' => '登录成功', 'uid' => $user['id']);
        }
    }
}
header('Content-type: application/json;charset=utf-8');
echo json_encode($jsonParam);
    $patternMobile = Sp_Dictionary::getOtherOption('patternMobile');
    $patternPasswd = Sp_Dictionary::getOtherOption('patternPasswd');
    $patternUserId = Sp_Dictionary::getOtherOption('patternUserId');
    if ((preg_match($patternEmail, $username) || preg_match($patternMobile, $username) || preg_match($patternUserId, $username)) && strlen($passwd) >= 6) {
        return TRUE;
    } else {
        if (false == preg_match($patternEmail, $username)) {
            return array('code' => '400', 'msg' => '账户名格式不匹配');
        } else {
            if (strlen($passwd) < 6) {
                return array('code' => '400', 'msg' => '密码长度在6-16位字符之间');
            }
        }
    }
}
$jsonParam = array();
$request = Request::current();
$result = check($request->username, $request->password);
if (TRUE === $result) {
    Loader::nocache();
    $ret = Sp_Account_SignIn::signinFromRequest($request);
    if (is_numeric($ret) && $ret > 0) {
        $jsonParam = array('code' => '200', 'msg' => '登录成功', 'uid' => $ret);
    } else {
        $jsonParam = array('code' => '400', 'msg' => '您输入的帐号或密码有误');
    }
} else {
    $jsonParam = $result;
}
header('Content-type: application/json;charset=utf-8');
echo json_encode($jsonParam);
 /**
  * function register
  * 
  *  注册用户
  * 
  * @param
  * @return void
  */
 public static function register($request)
 {
     $username = $request->username;
     $password = $request->password;
     if (strlen($username) < 4 || strlen($username) > 40) {
         return -101;
     }
     if (strlen($password) < 6 || strlen($password) > 40) {
         return -121;
     }
     //判断用户是否存在
     if (self::isAvailableUid($request->username) != TRUE) {
         return -108;
     }
     //判断手机邮箱是否存在
     if (self::isAvailableEmail($request->email) != TRUE || self::isAvailableMobile($request->mobile) != TRUE) {
         return -109;
     }
     $email = $request->email;
     $mobile = $request->mobile;
     $now = $request->REQUEST_TIME;
     $rowUser['userid'] = $username;
     $rowUser['pwd'] = $password;
     $rowUser['mobile'] = $mobile;
     $rowUser['email'] = $email;
     $rowUser['kid'] = $now + 10;
     //加密kid
     $rowUser['regtime'] = $now;
     $rowUser['regip'] = $request->CLIENT_IP;
     $rowUser['status'] = 0;
     $_refs = Sp_Session::getReferers();
     $uid = self::storeUser($rowUser);
     if ($uid > 0) {
         $_user = self::load($uid);
         Sp_Account_SignIn::setHttpCookie($_user);
         //设置登录
         $sql = "update ht_users set login_nums = login_nums+1, logintime = ?, loginip=? where id=?";
         $sth = Da_Wrapper::dbo(self::DB_TABLE_USER)->prepare($sql);
         $ret = $sth->execute(array($request->REQUEST_TIME, $request->CLIENT_IP, $uid));
     }
     return $uid;
 }