check($mobile,$verifycode)){ $this->error = $mVC->error; return false; } $data['register_time'] = time(); $data['checked'] =1; $data['status'] =1; $data['password'] = md6($data['password']); if($data['member_id']){ return parent::save($data); }else{ $mVC = new MobileVerifyCode(); $mVC->clear();//清空验证码 $this->error = "注册成功"; return $this->add($data); } } /** * 判断用户登陆 * @return array or false */ public function checkLogin(){ $username = I("mobile"); $password = md6(I("password")); $member_r = $this->where(array("mobile" => $username))->find(); if (!$member_r) { $this->error = "用户名或密码错误"; return false; } if ($member_r["password"] === $password) { if (!$member_r[status]) { $this->error = "用户已被禁用"; return false; }elseif (!$member_r[checked]) { $this->error = "用户未审核通过"; return false; }else{ return $this->setLogin($member_r); } } $this->error = "用户名或密码错误"; return false; } /** * @param $member_r 用户信息 * @return bool [true or false] 保存登陆信息 */ public function setLogin($member_r){ $session_data = array( "member_id" => $member_r["member_id"], "truename" => $member_r["truename"], "zhizhao" => $member_r["zhizhao"], "mobile" => $member_r["mobile"], ); session("member",$session_data); $newdata["member_id"]=$member_r['member_id']; $newdata["login_num"]=$member_r['login_num']+1; $newdata['last_login_ip']= get_client_ip(); $newdata['last_login_time']=time(); return parent::save($newdata); } /** * 调用create * @return array or false */ public function create2(){ $rules = array( array("mobile", "require", "手机号不能为空"), array('mobile','/^(1(([35789][0-9])|(47)))\d{8}$/','手机号码错误!','0','regex',1), array("password", "require", "密码不能为空"), ); $this->validate($rules); return parent::create(); } /** * 发送注册短信验证码 * @param $mobile * @return bool */ public function sendCode($mobile){ if(!self::check_phone($mobile)){ $this->error = "请输入正确手机号码"; return false; } if(self::exists_phone($mobile)){ $this->error = "手机号码已存在"; return false; } $mVC = new MobileVerifyCode(); return $mVC->send_code($mobile); } /** * 判断手机号码数据库是否存在 * @param $phone 手机号 * @return bool [true or false] */ public static function exists_phone($phone) { $where["mobile"] = $phone; return M("member")->where($where)->find() ? true : false; } /** * 用正则判断手机号码格式是否正确 * @param $phone 手机号 * @return bool [true or false] */ public static function check_phone($phone) { $check = '/^(1(([35789][0-9])|(47)))\d{8}$/'; if (preg_match($check, $phone)) { return true; } else { return false; } } /** * 保存签名的密码 * @param $phone 手机号 * @return bool [true or false] */ public static function md5_sign($password) { return md5(md5($password.'jijin')); } /** * 推出登陆 清空客户端登陆session */ public static function logout() { session("member",null); } }