2019.3.20 Session

一。Session缓存和Cookie的区别:

1.cookie数据存放在客户的浏览器上,session数据放在服务器上。
2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5.
将登陆信息等重要信息存放为SESSION

   其他信息如果需要保留,可以放在COOKIE中

 

二。判断登录时Session缓存是否存在此用户名

 

use think\facade\Session;  //每次引用

 

// 初始化
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']);

 

posted @ 2019-03-20 10:10  黄加蓝  阅读(156)  评论(0编辑  收藏  举报