/** * 采用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; }