显示验证码
1.需要在config.php配置
//验证码配置
'captcha' => [
// 验证码位数
'length' => 4,
// 是否画混淆曲线
'useCurve' => false,
]
2.在login.html中写上
{:captcha_src()}显示验证码
this.src='{:captcha_src()}?' + Math.random()随机验证码路径
<img class="pull-right" src="{:captcha_src()}" onclick="this.src='{:captcha_src()}?' + Math.random()" />
controller控制器的代码
/**
* 登陆方法
*/
public function login(){
//接收页面传过来的数据
$data = $this->request->param();
//定义验证规则
$rult = [
'username' => 'require|max:20|min:6',
'password' => 'require|max:20|min:6|alphaDash',
'code' => 'require'
];
//定义提示信息
$msg = [
'username.require' => '用户名不能为空',
'username.max' => '用户名不能超过20位',
'username.min' => '用户名不能小于6位',
'password.alphaDash' => '用户名必须是字母、数字或_组成',
'password.require' => '密码不能为空',
'password.max' => '密码必须小于20位',
'password.min' => '密码必须大于6位',
'code.require' => '验证码不能为空'
];
//获取登陆的 用户名和密码
$data2 = ['username' => $data['username'] , 'password' => $data['password']];
//检验验证码是否正确
if(!captcha_check($data['code'])){
//验证失败
return $this->error("验证码错误");
};
//验证账号密码是否符合要求
$result = new Validate($rult,$msg);
if(!$result->check($data)){
return $this->error($result->getError());
}
//查询账号密码 是否存在
$rel = user::get($data2);
if($rel != null){
//存储用户信息
session("user",$rel);
return $this->success('登陆成功!',"admin/index/index");
}
return $this->error("登陆失败!");
}