首先我们还是还是写一个控制器名字叫LoginController.class.php的控制器,首先来写一个code的方法来让验证码先显示出来:

public function Code(){
//创建验证码类的实例
$verify = new \Think\Verify();
//清空ob缓存
ob_clean();
//设置初始化验证码
$verify -> codeSet = "0123456789";
$verify -> length = "4";
$verify -> fontSize = "30px";
$verify -> fonttf = "4.ttf";
$verify -> useCurve = false;
$verify -> useNoise = false; //显示验证码,并且保存在session中
$verify -> entry();
//如果感觉不好看可以通过tplx\ThinkPHP\Library\Think\Verify.class.php里面进行设置
}

让后在到登录页面里修改下让验证码可以正常跑起来再说:

让后再写多一段js代码,让验证码可以在点击时候可以变换,

<div class="login">
<h1>Login</h1>
<form method="post" action=""__URL__/Login/" >
<input type="text" name="username" placeholder="用户名" required="required" />
<input type="password" name="password" placeholder="密码" required="required" />
<input type="text" name="captcha" placeholder="验证码" required="required" />
<img id="code" src="__CONTROLLER__/Code" width="145" height="50" alt="CAPTCHA" border="1" onclick= this.src="index.php?act=captcha&"+Math.random() style="cursor: pointer;" title="看不清?点击更换另一个验证码。" />
<button type="submit" class="btn btn-primary btn-block btn-large">登录</button>
</form>
</div>
<div style="text-align:center;"> </div> <script>
window.onload = function(){
document.getElementById("code").onclick = function(){
this.src = "__URL__/code/_/"+new Date().getTime();
}
}
</script>
</body>

然后再来写一个控制器让他对提交过来的数据进行验证:

这里使用了大D,所以要在Model里面进行验证帐号和密码

<?php
namespace Admin\Model;
use Think\Model;
//后台管理员模型
class UserModel extends Model{
//验证用户名和密码
function checkUser($username,$password){
$condition['username'] = $username; //数据库设计的时候这里是username
$condition['password'] = md5($password); //数据库设计的时候这里是password
if($admin=$this->where($condition)->find()){
//成功,保存session,并且跳转到首页
session('admin',$admin);
return true;
}else{
return false;
}
}
}

让后我们即可成功通过先验证验证码,在验证帐号和密码来进行登录了,,下一步就是退出登录了,这个也很简单,

//注销
public function logout(){
session(null);
$this -> success('恭喜成功退出','Login/login',3);
}

让后在后台模型下修改下链接即可,如下所示:

<a href="__MODULE__/Login/logout" target="topFrame" onFocus="this.blur()" class="admin-out">注销</a>

主要加一段代码即可:

最新文章

  1. ZooKeeper原理及使用
  2. Solr学习总结(三)Solr web 管理后台
  3. RabbitMQ系列之Centos 7安装RabbitMQ 3.6.1
  4. 【Infobright】infobright数据导入导出测试
  5. crontab读取环境变量方法
  6. I.MX6 Android i2c-tools porting
  7. python 使用@property
  8. Zephyr-MQTT
  9. 自定义H5页面规范
  10. Oracle merge into 使用记录
  11. jsp filter登录限制过滤器
  12. iOS开发——代理与block传值
  13. Postman测试http接口
  14. .NET Core微服务之基于Jenkins+Docker实现持续部署(Part 1)
  15. C#如何在生成文件夹或者文件时候自动重命名
  16. Cesium-知识点(Viewer)
  17. 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置
  18. Python 文件操作二
  19. mysql 解压版方法
  20. 如何在C#程序中模拟域帐户进行登录操作 (转载)

热门文章

  1. readonly=“readonly”与readonly=“true”
  2. 比较java与c语言中数字转换成字符的不同
  3. 7Z命令行
  4. [LeetCode]题解(python):046-Permutations
  5. mongoDB命令
  6. ClassLoader
  7. IDEA UML类图插件
  8. table tricks
  9. free 命令
  10. Linux绑定双网卡