一。Session缓存和Cookie的区别:
1.cookie数据存放在客户的浏览器上,session数据放在服务器上。
2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5.将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
二。判断登录时Session缓存是否存在此用户名
use thinkfacadeSession; //每次引用
// 初始化
protected function initialize()
{}
位置在tp5/thinkphp/library/think/Controller.php
首先在admin/Base.php
class Base extends Controller
{
protected function initialize(){
if(!$this->isLogin()){ //判断它是否登录
return $this->redirect("Login/index"); //如果没登录重定向到登录页
}
}
//isLogin 判断是否登录
public function isLogin(){
if(!session("?username")){ //判断(当前作用域)是否赋值
return false;
}
return true;
}
}
在后台首页admin/index.php
public function index(){
if(!$this->isLogin()){
return $this->redirect("Login/index");
}
return view();
}
到admin/Login.php中
public Login extends Base
{
protected function initialize()
{}
public function index(){
if($this->isLogin()){ //如果登录了
return $this->redirect('Index/index'); //直接进到首页
}
return $this->fetch();
}
}
最后在登录成功前
// 赋值(当前作用域)
Session::set('name','thinkphp'); //('username',$panduan['username']);