Files
tuiguangzhushou/application/common/validate/Member.php
2020-08-06 15:26:41 +08:00

90 lines
3.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +------------------------------------------------+
// |http://www.cjango.com |
// +------------------------------------------------+
// | 修复BUG不是一朝一夕的事情等我喝醉了再说吧 |
// +------------------------------------------------+
// | Author: 小陈叔叔 <Jason.Chen> |
// +------------------------------------------------+
namespace app\common\validate;
use app\common\model\Sms as SmsModel;
use think\Db;
use think\Validate;
use tools\Crypt;
class Member extends Validate
{
/**
* 验证规则
* @var array
*/
protected $rule = [
'username' => 'require|length:4,32|unique:member',
'password' => 'require|length:6,32',
'openid' => 'require',
'oldpass' => 'require|length:6,32|verifyPassword:',
'newpass' => 'require|length:6,32|different:oldpass',
'repass' => 'require|length:6,32|confirm:newpass',
'verify' => 'require|number|length:4|checkVerify:',
];
/**
* 提示信息
* @var array
*/
protected $message = [
'username.require' => '手机号必须填写',
'username.length' => '手机号长度应在:1-:2位之间',
'username.unique' => '手机号已经存在',
'password.require' => '密码必须填写',
'password.length' => '密码长度应在:1-:2位之间',
'oldpass.require' => '原始密码必须填写',
'oldpass.length' => '原始密码长度应在:1-:2位之间',
'oldpass.verifyPassword' => '原始密码不正确',
'newpass.require' => '新密码必须填写',
'newpass.length' => '新密码长度应在:1-:2位之间',
'newpass.different' => '新密码不能与原始密码相同',
'repass.require' => '确认密码必须填写',
'repass.length' => '确认密码长度应在:1-:2位之间',
'repass.confirm' => '两次输入的密码不一致',
'openid.require' => '绑定失败',
'verify.require' => '验证码必须填写',
'verify.number' => '验证码只允许数字',
'verify.length' => '请输入:rule位验证码',
];
/**
* 验证场景
* @var array
*/
protected $scene = [
'changepass' => ['oldpass', 'newpass', 'repass'],
'updatepass' => ['password'],
'openid' => ['openid'],
'forget' => ['newpass', 'repass'],
'register' => ['username', 'password'],
'login' => ['username' => 'require|length:4,32', 'password'],
'mobileRegister' => ['username', 'password', 'repass' => 'require|confirm:password'],
'bindmobile' => ['username', 'verify'],
];
protected function verifyPassword($value, $rule, $data)
{
return Crypt::uMd5($value) == Db::name('Member')->where('id', $data['uid'])->value('password');
}
protected function checkVerify($val, $rule, $data)
{
$res = SmsModel::where('mobile', $data['username'])->where('status', 0)->order('id desc')->find();
if ($res && $res['code'] == $val) {
$res->save(['status' => 1]);
return true;
} else {
return '验证码有误';
}
}
}