夺命雷公狗---Thinkphp----10之后台登录.注销一条龙
首先我们还是还是写一个控制器名字叫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>
主要加一段代码即可:
夺命雷公狗---Thinkphp----10之后台登录.注销一条龙的更多相关文章
- 夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台
我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调 ...
- 夺命雷公狗ThinkPHP项目之----企业网站10之栏目的编辑完善(无限极分类的完成)
我们编辑首先就要考虑将下拉框效果实现出来,然后再进行下一步操作: 我们用到了Model层的操作,在第8讲里面其实已经写好了catTree方法,控制器如下所示: 然后在列表页然他变量进行输出 然后开始通 ...
- 夺命雷公狗ThinkPHP项目之----企业网站3之后台栏目页的搭建(百度编辑器的引入)
我们现在就开始搭建我们的后台栏目页的后台了: 首先创建一个CategoryController.class.php的控制器,让列表页和添加页面显示出来先: 然后就是开始动手修改我们的视图部分了: 我们 ...
- 夺命雷公狗ThinkPHP项目之----企业网站26之网站前台列表页的显示和完成分页功能
我们用大I接收到我们get过来的栏目页的id然后通过文章的ar_cateid 来判断是不是属于该栏目下的,如果文章表ar_cateid = 栏目表的cate_id 那么就可以选出我们要查找的信息, 然 ...
- 夺命雷公狗ThinkPHP项目之----企业网站25之网站前台面包屑导航URL的完善
如果想取出面包屑导航的url那么就必须在model层里面进行多取一个了: <?php namespace Home\Model; use Think\Model; class CategoryM ...
- 夺命雷公狗ThinkPHP项目之----企业网站19之网站配置信息的修改
我们这个其实也是很简单的,思路是直接将提交过来的cf_id 改成我们自己定义好的 “1” 即可,因为1配置只能有一个,所以永久都是该id 为1的: 先来完成我们的控制器,代码如下所示: public ...
- 夺命雷公狗ThinkPHP项目之----企业网站18之网站配置列表页的完成
我们点击下配置列表即可查看我们列表页的配置信息了: 其实这个最简单了,首先我们先来完成他控制器的代码: public function lists(){ $mod = M('Conf')->se ...
- 夺命雷公狗ThinkPHP项目之----企业网站17之网站配置页的添加
为了网站可以智能一点,所以我们开始来写一个网站配置的功能.. 所以我来写他的数据表: 先来完成他的添加功能,页面效果如下所示: lists.html代码如下所示: <!doctype html& ...
- 夺命雷公狗ThinkPHP项目之----企业网站14之文章修改页的完成
这个其实也是挺容易的,我们思路先将栏目页给遍历出来: 这里用了catTree的方法,因为我们要对遍历出来的数据进行排序的,然后来到前端进行完成列表: <!doctype html> < ...
随机推荐
- C++线程池的实现(二)
参考文章:http://blog.csdn.net/huyiyang2010/archive/2010/08/10/5801597.aspx // CThread.h #ifndef __MY_THR ...
- 修改PHP的memory_limit限制
在运行PHP程序,通常会遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的错误, 这个意味着PHP脚本使用了过多的内存,并超 ...
- Ubuntu-1404 GDB 调试C++报错
问题 Ubuntu1404下,当用GDB调试C++程序时,报错ImportError: No module named 'libstdcxx' 解决办法 vim ~/.gdbinit #~/.gdbi ...
- .net中如何使用cookie
比如建立一个名为aspcn,值为灌水小鱼的cookie HttpCookie cookie = new HttpCookie["aspcn"];cookie.Value = &qu ...
- LeetCode Majority Element I && II
原题链接在这里:Majority Element I,Majority Element II 对于Majority Element I 来说,有多重解法. Method 1:最容易想到的就是用Hash ...
- Spring第十一篇——–Spring整合Hibernate之配置数据源
DataSource(数据源)提供了一个标准化的取得数据库连接的方式,通过getConnection()方法即可取得数据库的连接,Spring也提供了数据库连接池(DataBase connectio ...
- ARC Rules
To write and compile source code for ARC, you have to take care of a few things. Just by following t ...
- PHP导出CSV UTF-8转GBK不乱码的解决办法
折腾了几次 搜索了好久 终于找到办法 /** * http://yige.org/php/ * @ string 需要转换的文字 * @ encoding 目标编码 **/ function conv ...
- Java基础之线程——使用Runnable接口(JumbleNames)
控制台程序. 除了定义Thread新的子类外,还可以在类中实现Runnable接口.您会发现这比从Thread类派生子类更方便,因为在实现Runnable接口时可以从不是Thread的类派生子类,并且 ...
- Java基础之读文件——使用缓冲读取器读取文件(ReaderInputFromFile)
控制台程序,本例读取Java基础之写文件部分(WriterOutputToFile)写入的Saying.txt. import java.io.*; import java.nio.file.*; i ...