标签:
1. User\Model\UcenterMemberModel.class.php
1 <?php 2 // +---------------------------------------------------------------------- 3 // | OneThink [ WE CAN DO IT JUST THINK IT ] 4 // +---------------------------------------------------------------------- 5 // | Copyright (c) 2013 http://www.onethink.cn All rights reserved. 6 // +---------------------------------------------------------------------- 7 // | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn> 8 // +---------------------------------------------------------------------- 9 namespace User\Model; 10 use Think\Model; 11 /** 12 * 会员模型 13 */ 14 class UcenterMemberModel extends Model{ 15 /** 16 * 数据表前缀 17 * @var string 18 */ 19 protected $tablePrefix = UC_TABLE_PREFIX; 20 21 /** 22 * 数据库连接 23 * @var string 24 */ 25 protected $connection = UC_DB_DSN; 26 27 /* 用户模型自动验证 */ 28 protected $_validate = array( 29 /* 验证用户名 */ 30 array(‘username‘, ‘1,30‘, -1, self::EXISTS_VALIDATE, ‘length‘), //用户名长度不合法 31 array(‘username‘, ‘checkDenyMember‘, -2, self::EXISTS_VALIDATE, ‘callback‘), //用户名禁止注册 32 array(‘username‘, ‘‘, -3, self::EXISTS_VALIDATE, ‘unique‘), //用户名被占用 33 34 /* 验证密码 */ 35 array(‘password‘, ‘6,30‘, -4, self::EXISTS_VALIDATE, ‘length‘), //密码长度不合法 36 37 /* 验证邮箱 */ 38 array(‘email‘, ‘email‘, -5, self::EXISTS_VALIDATE), //邮箱格式不正确 39 array(‘email‘, ‘1,32‘, -6, self::EXISTS_VALIDATE, ‘length‘), //邮箱长度不合法 40 array(‘email‘, ‘checkDenyEmail‘, -7, self::EXISTS_VALIDATE, ‘callback‘), //邮箱禁止注册 41 array(‘email‘, ‘‘, -8, self::EXISTS_VALIDATE, ‘unique‘), //邮箱被占用 42 43 /* 验证手机号码 */ 44 array(‘mobile‘, ‘//‘, -9, self::EXISTS_VALIDATE), //手机格式不正确 TODO: 45 array(‘mobile‘, ‘checkDenyMobile‘, -10, self::EXISTS_VALIDATE, ‘callback‘), //手机禁止注册 46 array(‘mobile‘, ‘‘, -11, self::EXISTS_VALIDATE, ‘unique‘), //手机号被占用 47 ); 48 49 /* 用户模型自动完成 */ 50 protected $_auto = array( 51 array(‘password‘, ‘think_ucenter_md5‘, self::MODEL_BOTH, ‘function‘, UC_AUTH_KEY), 52 array(‘reg_time‘, NOW_TIME, self::MODEL_INSERT), 53 array(‘reg_ip‘, ‘get_client_ip‘, self::MODEL_INSERT, ‘function‘, 1), 54 array(‘update_time‘, NOW_TIME), 55 array(‘status‘, ‘getStatus‘, self::MODEL_BOTH, ‘callback‘), 56 ); 57 58 /** 59 * 检测用户名是不是被禁止注册 60 * @param string $username 用户名 61 * @return boolean ture - 未禁用,false - 禁止注册 62 */ 63 protected function checkDenyMember($username){ 64 return true; //TODO: 暂不限制,下一个版本完善 65 } 66 67 /** 68 * 检测邮箱是不是被禁止注册 69 * @param string $email 邮箱 70 * @return boolean ture - 未禁用,false - 禁止注册 71 */ 72 protected function checkDenyEmail($email){ 73 return true; //TODO: 暂不限制,下一个版本完善 74 } 75 76 /** 77 * 检测手机是不是被禁止注册 78 * @param string $mobile 手机 79 * @return boolean ture - 未禁用,false - 禁止注册 80 */ 81 protected function checkDenyMobile($mobile){ 82 return true; //TODO: 暂不限制,下一个版本完善 83 } 84 85 /** 86 * 根据配置指定用户状态 87 * @return integer 用户状态 88 */ 89 protected function getStatus(){ 90 return true; //TODO: 暂不限制,下一个版本完善 91 } 92 93 /** 94 * 注册一个新用户 95 * @param string $username 用户名 96 * @param string $password 用户密码 97 * @param string $email 用户邮箱 98 * @param string $mobile 用户手机号码 99 * @return integer 注册成功-用户信息,注册失败-错误编号 100 */ 101 public function register($username, $password, $email, $mobile){ 102 $data = array( 103 ‘username‘ => $username, 104 ‘password‘ => $password, 105 ‘email‘ => $email, 106 ‘mobile‘ => $mobile, 107 ); 108 109 //验证手机 110 if(empty($data[‘mobile‘])) unset($data[‘mobile‘]); 111 112 /* 添加用户 */ 113 if($this->create($data)){ 114 $uid = $this->add(); 115 return $uid ? $uid : 0; //0-未知错误,大于0-注册成功 116 } else { 117 return $this->getError(); //错误详情见自动验证注释 118 } 119 } 120 121 /** 122 * 用户登录认证 123 * @param string $username 用户名 124 * @param string $password 用户密码 125 * @param integer $type 用户名类型 (1-用户名,2-邮箱,3-手机,4-UID) 126 * @return integer 登录成功-用户ID,登录失败-错误编号 127 */ 128 public function login($username, $password, $type = 1){ 129 $map = array(); 130 switch ($type) { 131 case 1: 132 $map[‘username‘] = $username; 133 break; 134 case 2: 135 $map[‘email‘] = $username; 136 break; 137 case 3: 138 $map[‘mobile‘] = $username; 139 break; 140 case 4: 141 $map[‘id‘] = $username; 142 break; 143 default: 144 return 0; //参数错误 145 } 146 147 /* 获取用户数据 */ 148 $user = $this->where($map)->find(); 149 if(is_array($user) && $user[‘status‘]){ 150 /* 验证用户密码 */ 151 if(think_ucenter_md5($password, UC_AUTH_KEY) === $user[‘password‘]){ 152 $this->updateLogin($user[‘id‘]); //更新用户登录信息 153 return $user[‘id‘]; //登录成功,返回用户ID 154 } else { 155 return -2; //密码错误 156 } 157 } else { 158 return -1; //用户不存在或被禁用 159 } 160 } 161 162 /** 163 * 获取用户信息 164 * @param string $uid 用户ID或用户名 165 * @param boolean $is_username 是否使用用户名查询 166 * @return array 用户信息 167 */ 168 public function info($uid, $is_username = false){ 169 $map = array(); 170 if($is_username){ //通过用户名获取 171 $map[‘username‘] = $uid; 172 } else { 173 $map[‘id‘] = $uid; 174 } 175 176 $user = $this->where($map)->field(‘id,username,email,mobile,status‘)->find(); 177 if(is_array($user) && $user[‘status‘] = 1){ 178 return array($user[‘id‘], $user[‘username‘], $user[‘email‘], $user[‘mobile‘]); 179 } else { 180 return -1; //用户不存在或被禁用 181 } 182 } 183 184 /** 185 * 检测用户信息 186 * @param string $field 用户名 187 * @param integer $type 用户名类型 1-用户名,2-用户邮箱,3-用户电话 188 * @return integer 错误编号 189 */ 190 public function checkField($field, $type = 1){ 191 $data = array(); 192 switch ($type) { 193 case 1: 194 $data[‘username‘] = $field; 195 break; 196 case 2: 197 $data[‘email‘] = $field; 198 break; 199 case 3: 200 $data[‘mobile‘] = $field; 201 break; 202 default: 203 return 0; //参数错误 204 } 205 206 return $this->create($data) ? 1 : $this->getError(); 207 } 208 209 /** 210 * 更新用户登录信息 211 * @param integer $uid 用户ID 212 */ 213 protected function updateLogin($uid){ 214 $data = array( 215 ‘id‘ => $uid, 216 ‘last_login_time‘ => NOW_TIME, 217 ‘last_login_ip‘ => get_client_ip(1), 218 ); 219 $this->save($data); 220 } 221 222 /** 223 * 更新用户信息 224 * @param int $uid 用户id 225 * @param string $password 密码,用来验证 226 * @param array $data 修改的字段数组 227 * @return true 修改成功,false 修改失败 228 * @author huajie <banhuajie@163.com> 229 */ 230 public function updateUserFields($uid, $password, $data){ 231 if(empty($uid) || empty($password) || empty($data)){ 232 $this->error = ‘参数错误!‘; 233 return false; 234 } 235 236 //更新前检查用户密码 237 if(!$this->verifyUser($uid, $password)){ 238 $this->error = ‘验证出错:密码不正确!‘; 239 return false; 240 } 241 242 //更新用户信息 243 $data = $this->create($data); 244 if($data){ 245 return $this->where(array(‘id‘=>$uid))->save($data); 246 } 247 return false; 248 } 249 250 /** 251 * 验证用户密码 252 * @param int $uid 用户id 253 * @param string $password_in 密码 254 * @return true 验证成功,false 验证失败 255 * @author huajie <banhuajie@163.com> 256 */ 257 protected function verifyUser($uid, $password_in){ 258 $password = $this->getFieldById($uid, ‘password‘); 259 if(think_ucenter_md5($password_in, UC_AUTH_KEY) === $password){ 260 return true; 261 } 262 return false; 263 } 264 265 }
2. User/Api/UserApi.class.php
1 <?php 2 // +---------------------------------------------------------------------- 3 // | OneThink [ WE CAN DO IT JUST THINK IT ] 4 // +---------------------------------------------------------------------- 5 // | Copyright (c) 2013 http://www.onethink.cn All rights reserved. 6 // +---------------------------------------------------------------------- 7 // | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn> 8 // +---------------------------------------------------------------------- 9 10 namespace User\Api; 11 use User\Api\Api; 12 use User\Model\UcenterMemberModel; 13 14 class UserApi extends Api{ 15 /** 16 * 构造方法,实例化操作模型 17 */ 18 protected function _init(){ 19 $this->model = new UcenterMemberModel(); 20 } 21 22 /** 23 * 注册一个新用户 24 * @param string $username 用户名 25 * @param string $password 用户密码 26 * @param string $email 用户邮箱 27 * @param string $mobile 用户手机号码 28 * @return integer 注册成功-用户信息,注册失败-错误编号 29 */ 30 public function register($username, $password, $email, $mobile = ‘‘){ 31 return $this->model->register($username, $password, $email, $mobile); 32 } 33 34 /** 35 * 用户登录认证 36 * @param string $username 用户名 37 * @param string $password 用户密码 38 * @param integer $type 用户名类型 (1-用户名,2-邮箱,3-手机,4-UID) 39 * @return integer 登录成功-用户ID,登录失败-错误编号 40 */ 41 public function login($username, $password, $type = 1){ 42 return $this->model->login($username, $password, $type); 43 } 44 45 /** 46 * 获取用户信息 47 * @param string $uid 用户ID或用户名 48 * @param boolean $is_username 是否使用用户名查询 49 * @return array 用户信息 50 */ 51 public function info($uid, $is_username = false){ 52 return $this->model->info($uid, $is_username); 53 } 54 55 /** 56 * 检测用户名 57 * @param string $field 用户名 58 * @return integer 错误编号 59 */ 60 public function checkUsername($username){ 61 return $this->model->checkField($username, 1); 62 } 63 64 /** 65 * 检测邮箱 66 * @param string $email 邮箱 67 * @return integer 错误编号 68 */ 69 public function checkEmail($email){ 70 return $this->model->checkField($email, 2); 71 } 72 73 /** 74 * 检测手机 75 * @param string $mobile 手机 76 * @return integer 错误编号 77 */ 78 public function checkMobile($mobile){ 79 return $this->model->checkField($mobile, 3); 80 } 81 82 /** 83 * 更新用户信息 84 * @param int $uid 用户id 85 * @param string $password 密码,用来验证 86 * @param array $data 修改的字段数组 87 * @return true 修改成功,false 修改失败 88 * @author huajie <banhuajie@163.com> 89 */ 90 public function updateInfo($uid, $password, $data){ 91 if($this->model->updateUserFields($uid, $password, $data) !== false){ 92 $return[‘status‘] = true; 93 }else{ 94 $return[‘status‘] = false; 95 $return[‘info‘] = $this->model->getError(); 96 } 97 return $return; 98 } 99 100 }
3. Home/Controller/UserController.class.php
1 <?php 2 // +---------------------------------------------------------------------- 3 // | OneThink [ WE CAN DO IT JUST THINK IT ] 4 // +---------------------------------------------------------------------- 5 // | Copyright (c) 2013 http://www.onethink.cn All rights reserved. 6 // +---------------------------------------------------------------------- 7 // | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn> 8 // +---------------------------------------------------------------------- 9 10 namespace Home\Controller; 11 use User\Api\UserApi; 12 13 /** 14 * 用户控制器 15 * 包括用户中心,用户登录及注册 16 */ 17 class UserController extends HomeController { 18 19 /* 用户中心首页 */ 20 public function index(){ 21 22 } 23 24 /* 注册页面 */ 25 public function register($username = ‘‘, $password = ‘‘, $repassword = ‘‘, $email = ‘‘, $verify = ‘‘){ 26 if(!C(‘USER_ALLOW_REGISTER‘)){ 27 $this->error(‘注册已关闭‘); 28 } 29 if(IS_POST){ //注册用户 30 /* 检测验证码 */ 31 if(!check_verify($verify)){ 32 $this->error(‘验证码输入错误!‘); 33 } 34 35 /* 检测密码 */ 36 if($password != $repassword){ 37 $this->error(‘密码和重复密码不一致!‘); 38 } 39 40 /* 调用注册接口注册用户 */ 41 $User = new UserApi; 42 $uid = $User->register($username, $password, $email); 43 if(0 < $uid){ //注册成功 44 //TODO: 发送验证邮件 45 $this->success(‘注册成功!‘,U(‘login‘)); 46 } else { //注册失败,显示错误信息 47 $this->error($this->showRegError($uid)); 48 } 49 50 } else { //显示注册表单 51 $this->display(); 52 } 53 } 54 55 /* 登录页面 */ 56 public function login($username = ‘‘, $password = ‘‘, $verify = ‘‘){ 57 if(IS_POST){ //登录验证 58 /* 检测验证码 */ 59 if(!check_verify($verify)){ 60 $this->error(‘验证码输入错误!‘); 61 } 62 63 /* 调用UC登录接口登录 */ 64 $user = new UserApi; 65 $uid = $user->login($username, $password); 66 if(0 < $uid){ //UC登录成功 67 /* 登录用户 */ 68 $Member = D(‘Member‘); 69 if($Member->login($uid)){ //登录用户 70 //TODO:跳转到登录前页面 71 $this->success(‘登录成功!‘,U(‘Home/Index/index‘)); 72 } else { 73 $this->error($Member->getError()); 74 } 75 76 } else { //登录失败 77 switch($uid) { 78 case -1: $error = ‘用户不存在或被禁用!‘; break; //系统级别禁用 79 case -2: $error = ‘密码错误!‘; break; 80 default: $error = ‘未知错误!‘; break; // 0-接口参数错误(调试阶段使用) 81 } 82 $this->error($error); 83 } 84 85 } else { //显示登录表单 86 $this->display(); 87 } 88 } 89 90 /* 退出登录 */ 91 public function logout(){ 92 if(is_login()){ 93 D(‘Member‘)->logout(); 94 $this->success(‘退出成功!‘, U(‘User/login‘)); 95 } else { 96 $this->redirect(‘User/login‘); 97 } 98 } 99 100 /* 验证码,用于登录和注册 */ 101 public function verify(){ 102 $verify = new \Think\Verify(); 103 $verify->entry(1); 104 } 105 106 /** 107 * 获取用户注册错误信息 108 * @param integer $code 错误编码 109 * @return string 错误信息 110 */ 111 private function showRegError($code = 0){ 112 switch ($code) { 113 case -1: $error = ‘用户名长度必须在16个字符以内!‘; break; 114 case -2: $error = ‘用户名被禁止注册!‘; break; 115 case -3: $error = ‘用户名被占用!‘; break; 116 case -4: $error = ‘密码长度必须在6-30个字符之间!‘; break; 117 case -5: $error = ‘邮箱格式不正确!‘; break; 118 case -6: $error = ‘邮箱长度必须在1-32个字符之间!‘; break; 119 case -7: $error = ‘邮箱被禁止注册!‘; break; 120 case -8: $error = ‘邮箱被占用!‘; break; 121 case -9: $error = ‘手机格式不正确!‘; break; 122 case -10: $error = ‘手机被禁止注册!‘; break; 123 case -11: $error = ‘手机号被占用!‘; break; 124 default: $error = ‘未知错误‘; 125 } 126 return $error; 127 } 128 129 130 /** 131 * 修改密码提交 132 * @author huajie <banhuajie@163.com> 133 */ 134 public function profile(){ 135 if ( !is_login() ) { 136 $this->error( ‘您还没有登陆‘,U(‘User/login‘) ); 137 } 138 if ( IS_POST ) { 139 //获取参数 140 $uid = is_login(); 141 $password = I(‘post.old‘); 142 $repassword = I(‘post.repassword‘); 143 $data[‘password‘] = I(‘post.password‘); 144 empty($password) && $this->error(‘请输入原密码‘); 145 empty($data[‘password‘]) && $this->error(‘请输入新密码‘); 146 empty($repassword) && $this->error(‘请输入确认密码‘); 147 148 if($data[‘password‘] !== $repassword){ 149 $this->error(‘您输入的新密码与确认密码不一致‘); 150 } 151 152 $Api = new UserApi(); 153 $res = $Api->updateInfo($uid, $password, $data); 154 if($res[‘status‘]){ 155 $this->success(‘修改密码成功!‘); 156 }else{ 157 $this->error($res[‘info‘]); 158 } 159 }else{ 160 $this->display(); 161 } 162 } 163 164 }
4. Admin/Controller/UserController.class.php
1 <?php 2 // +---------------------------------------------------------------------- 3 // | OneThink [ WE CAN DO IT JUST THINK IT ] 4 // +---------------------------------------------------------------------- 5 // | Copyright (c) 2013 http://www.onethink.cn All rights reserved. 6 // +---------------------------------------------------------------------- 7 // | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn> 8 // +---------------------------------------------------------------------- 9 10 namespace Admin\Controller; 11 use User\Api\UserApi; 12 13 /** 14 * 后台用户控制器 15 * @author 麦当苗儿 <zuojiazi@vip.qq.com> 16 */ 17 class UserController extends AdminController { 18 19 /** 20 * 用户管理首页 21 * @author 麦当苗儿 <zuojiazi@vip.qq.com> 22 */ 23 public function index(){ 24 $nickname = I(‘nickname‘); 25 $map[‘status‘] = array(‘egt‘,0); 26 if(is_numeric($nickname)){ 27 $map[‘uid|nickname‘]= array(intval($nickname),array(‘like‘,‘%‘.$nickname.‘%‘),‘_multi‘=>true); 28 }else{ 29 $map[‘nickname‘] = array(‘like‘, ‘%‘.(string)$nickname.‘%‘); 30 } 31 32 $list = $this->lists(‘Member‘, $map); 33 int_to_string($list); 34 $this->assign(‘_list‘, $list); 35 $this->meta_title = ‘用户信息‘; 36 $this->display(); 37 } 38 39 /** 40 * 修改昵称初始化 41 * @author huajie <banhuajie@163.com> 42 */ 43 public function updateNickname(){ 44 $nickname = M(‘Member‘)->getFieldByUid(UID, ‘nickname‘); 45 $this->assign(‘nickname‘, $nickname); 46 $this->meta_title = ‘修改昵称‘; 47 $this->display(‘updatenickname‘); 48 } 49 50 /** 51 * 修改昵称提交 52 * @author huajie <banhuajie@163.com> 53 */ 54 public function submitNickname(){ 55 //获取参数 56 $nickname = I(‘post.nickname‘); 57 $password = I(‘post.password‘); 58 empty($nickname) && $this->error(‘请输入昵称‘); 59 empty($password) && $this->error(‘请输入密码‘); 60 61 //密码验证 62 $User = new UserApi(); 63 $uid = $User->login(UID, $password, 4); 64 ($uid == -2) && $this->error(‘密码不正确‘); 65 66 $Member = D(‘Member‘); 67 $data = $Member->create(array(‘nickname‘=>$nickname)); 68 if(!$data){ 69 $this->error($Member->getError()); 70 } 71 72 $res = $Member->where(array(‘uid‘=>$uid))->save($data); 73 74 if($res){ 75 $user = session(‘user_auth‘); 76 $user[‘username‘] = $data[‘nickname‘]; 77 session(‘user_auth‘, $user); 78 session(‘user_auth_sign‘, data_auth_sign($user)); 79 $this->success(‘修改昵称成功!‘); 80 }else{ 81 $this->error(‘修改昵称失败!‘); 82 } 83 } 84 85 /** 86 * 修改密码初始化 87 * @author huajie <banhuajie@163.com> 88 */ 89 public function updatePassword(){ 90 $this->meta_title = ‘修改密码‘; 91 $this->display(‘updatepassword‘); 92 } 93 94 /** 95 * 修改密码提交 96 * @author huajie <banhuajie@163.com> 97 */ 98 public function submitPassword(){ 99 //获取参数 100 $password = I(‘post.old‘); 101 empty($password) && $this->error(‘请输入原密码‘); 102 $data[‘password‘] = I(‘post.password‘); 103 empty($data[‘password‘]) && $this->error(‘请输入新密码‘); 104 $repassword = I(‘post.repassword‘); 105 empty($repassword) && $this->error(‘请输入确认密码‘); 106 107 if($data[‘password‘] !== $repassword){ 108 $this->error(‘您输入的新密码与确认密码不一致‘); 109 } 110 111 $Api = new UserApi(); 112 $res = $Api->updateInfo(UID, $password, $data); 113 if($res[‘status‘]){ 114 $this->success(‘修改密码成功!‘); 115 }else{ 116 $this->error($res[‘info‘]); 117 } 118 } 119 120 /** 121 * 用户行为列表 122 * @author huajie <banhuajie@163.com> 123 */ 124 public function action(){ 125 //获取列表数据 126 $Action = M(‘Action‘)->where(array(‘status‘=>array(‘gt‘,-1))); 127 $list = $this->lists($Action); 128 int_to_string($list); 129 // 记录当前列表页的cookie 130 Cookie(‘__forward__‘,$_SERVER[‘REQUEST_URI‘]); 131 132 $this->assign(‘_list‘, $list); 133 $this->meta_title = ‘用户行为‘; 134 $this->display(); 135 } 136 137 /** 138 * 新增行为 139 * @author huajie <banhuajie@163.com> 140 */ 141 public function addAction(){ 142 $this->meta_title = ‘新增行为‘; 143 $this->assign(‘data‘,null); 144 $this->display(‘editaction‘); 145 } 146 147 /** 148 * 编辑行为 149 * @author huajie <banhuajie@163.com> 150 */ 151 public function editAction(){ 152 $id = I(‘get.id‘); 153 empty($id) && $this->error(‘参数不能为空!‘); 154 $data = M(‘Action‘)->field(true)->find($id); 155 156 $this->assign(‘data‘,$data); 157 $this->meta_title = ‘编辑行为‘; 158 $this->display(‘editaction‘); 159 } 160 161 /** 162 * 更新行为 163 * @author huajie <banhuajie@163.com> 164 */ 165 public function saveAction(){ 166 $res = D(‘Action‘)->update(); 167 if(!$res){ 168 $this->error(D(‘Action‘)->getError()); 169 }else{ 170 $this->success($res[‘id‘]?‘更新成功!‘:‘新增成功!‘, Cookie(‘__forward__‘)); 171 } 172 } 173 174 /** 175 * 会员状态修改 176 * @author 朱亚杰 <zhuyajie@topthink.net> 177 */ 178 public function changeStatus($method=null){ 179 $id = array_unique((array)I(‘id‘,0)); 180 if( in_array(C(‘USER_ADMINISTRATOR‘), $id)){ 181 $this->error("不允许对超级管理员执行该操作!"); 182 } 183 $id = is_array($id) ? implode(‘,‘,$id) : $id; 184 if ( empty($id) ) { 185 $this->error(‘请选择要操作的数据!‘); 186 } 187 $map[‘uid‘] = array(‘in‘,$id); 188 switch ( strtolower($method) ){ 189 case ‘forbiduser‘: 190 $this->forbid(‘Member‘, $map ); 191 break; 192 case ‘resumeuser‘: 193 $this->resume(‘Member‘, $map ); 194 break; 195 case ‘deleteuser‘: 196 $this->delete(‘Member‘, $map ); 197 break; 198 default: 199 $this->error(‘参数非法‘); 200 } 201 } 202 203 public function add($username = ‘‘, $password = ‘‘, $repassword = ‘‘, $email = ‘‘){ 204 if(IS_POST){ 205 /* 检测密码 */ 206 if($password != $repassword){ 207 $this->error(‘密码和重复密码不一致!‘); 208 } 209 210 /* 调用注册接口注册用户 */ 211 $User = new UserApi; 212 $uid = $User->register($username, $password, $email); 213 if(0 < $uid){ //注册成功 214 $user = array(‘uid‘ => $uid, ‘nickname‘ => $username, ‘status‘ => 1); 215 if(!M(‘Member‘)->add($user)){ 216 $this->error(‘用户添加失败!‘); 217 } else { 218 $this->success(‘用户添加成功!‘,U(‘index‘)); 219 } 220 } else { //注册失败,显示错误信息 221 $this->error($this->showRegError($uid)); 222 } 223 } else { 224 $this->meta_title = ‘新增用户‘; 225 $this->display(); 226 } 227 } 228 229 /** 230 * 获取用户注册错误信息 231 * @param integer $code 错误编码 232 * @return string 错误信息 233 */ 234 private function showRegError($code = 0){ 235 switch ($code) { 236 case -1: $error = ‘用户名长度必须在16个字符以内!‘; break; 237 case -2: $error = ‘用户名被禁止注册!‘; break; 238 case -3: $error = ‘用户名被占用!‘; break; 239 case -4: $error = ‘密码长度必须在6-30个字符之间!‘; break; 240 case -5: $error = ‘邮箱格式不正确!‘; break; 241 case -6: $error = ‘邮箱长度必须在1-32个字符之间!‘; break; 242 case -7: $error = ‘邮箱被禁止注册!‘; break; 243 case -8: $error = ‘邮箱被占用!‘; break; 244 case -9: $error = ‘手机格式不正确!‘; break; 245 case -10: $error = ‘手机被禁止注册!‘; break; 246 case -11: $error = ‘手机号被占用!‘; break; 247 default: $error = ‘未知错误‘; 248 } 249 return $error; 250 } 251 252 }
标签:
原文地址:http://www.cnblogs.com/zhien/p/5273998.html