ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
`php think build admin 创建个后台模块 ` 下载H-ui.admin后台 (下载的是H-ui.admin v3.1) view模板定义常量JS/CSS/LIB ``` 'tpl_replace_string' => [ 'JS' => '/static/js', 'CSS' => '/static/css', 'LIB' => '/static/lib', ] 'STATIC' => '/static', ] ``` 将整个H-ui的资源放入static/lib/H-ui (主要文件夹就是项目里lib与static放入H-ui里面) 所有外部资源 路径添加LIB/h-ui 完成资源引导 验证码用tp6自带的 首先使用Composer安装think-captcha扩展包 composer require topthink/think-captcha 验证码库需要开启Session才能生效。 我们自定义验证码 ``` use think\captcha\facade\Captcha; public function verify() { return Captcha::create(); } ``` 例如项目http://www.tp6.com/admin/verify.html 就可以看到验证网页 关于验证码设置config目录下面的captcha.php文件中进行设置即可 ``` // 添加额外的验证码设置 verify => [ 'length'=>3, 'fontSize'=>16, 'codeSet' => '0123456789', ], public function verify() { return Captcha::create('verify'); //加载配置即可 } ``` 具体验证码其他配件查看tp6手册 #### **回到前端显示验证码** ``` <input class="input-text size-L" type="text" placeholder="验证码" name="code" style="width:150px;"> <img src="{:url('/admin/index/verify')}" id="verify"> <a id="kanbuq" href="javascript:;">看不清,换一张</a> </div> ``` 点击看不清随机换一张写js方法 ``` $(function () { $('#kanbuq').click(function () { $('#verify').attr('src',$('#verify').attr('src')+'?'+Math.random()); //Math.random() 数学里面的随机数函数 }) }) ``` ***** 下面就是做登录功能实现 #### **前端表单** 账号username 密码password 验证码code 登录状态online -----------提交给 tologin控制器处理 ``` <form class="form form-horizontal" action="{:url('/admin/index/tologin')}" method="post"> <input type="checkbox" name="online" id="online" value="1"> ``` index/tologin提交过来的验证信息 ``` public function tologin() { $username =input('post.username'); $password =input('post.password'); $code =input('post.code'); $online = input('online',0);//记录保存状态 默认0不保存 if (empty($username)||empty($password)){ $this->error("用户名或者密码不能为空!",'/admin/login');die(); } //验证码判断 // if (empty($code)){ // $this->error('验证码不能为空','/admin/login');die(); // } // $captcha = new Captcha(); // if(!captcha_check($code)) // { // // 验证失败 // $this->error('验证码错误!','/admin/login');die(); // } $row = Db::name('admin')->where('username',$username)->find(); //dump($row); //可以打印看看数据 如果为空表示没有改账号信息 真下面开始校对密码 if (empty($row)){ $this->error('账号不存在!','/admin/login'); } if($row['password']!=md5(md5($password).$row['entry'])){ $this->error('密码错误!','/admin/login'); } echo '登录成功!'; //处理记住密码 暂时没写 // 修改登录的数据 Db::name('admin')->where('id',$row['id'])->update([ 'login_time' => time(), 'login_num' => $row['login_num']+1, 'login_ip' => request()->ip(), ]); // 产生session session('admin',$row); // dump(session('admin')); // 跳转页面 $this->redirect('/admin/main'); } ``` #### 跳转新的后台主页控制器 ``` class Main { public function index(){ echo '<h1>后台主界面</h1>'; dump(session('admin')); } } ```