// +---------------------------------------------------------------------- namespace app\api\validate; use app\common\models\Setting; use app\common\validate\Validate; use think\facade\Db; class Forget extends Validate { protected $rule = [ "username" => "require|mobile|checkMobiles", "password" => "require|checkPasswords", "code" => "require|checkCodes" ]; protected $message = [ "username.require" => "请填写手机号码", "username.mobile" => "您填写的手机号码不正确", "password.require" => "请填写密码", "code.require" => "请填写验证码" ]; protected $scene = [ "forget"=>["username","password","code"] ]; protected function checkMobiles($value, $rule, $data=[]){ if(!Db::name("users")->where("mobile",$value)->count()){ return "您填写的手机号码不存在!"; } return true; } protected function checkPasswords($value, $rule, $data=[]){ if(preg_match("/(\s)/i",$value)){ return "密码不能包含空格字符!"; } $len = mb_strlen($value,"UTF8"); if($len < 6 || $len > 18){ return "密码长度请控制在6-18字符!"; } return true; } protected function checkCodes($value, $rule, $data=[]){ if(empty($data["username"])){ return "请填写手机号码"; } if(!$sms = Db::name("users_sms")->where("mobile",$data["username"])->where("code",$value)->order("id","DESC")->find()){ return "您填写的验证码错误"; } $config = Setting::getArrayData("sms"); if(($sms["create_time"] + (60 * $config["duration_time"])) < time()){ return "您的验证码已过期,请重新发送。"; } return true; } }