2019.3.20 Session

Posted liuwei1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 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‘]);

 

以上是关于2019.3.20 Session的主要内容,如果未能解决你的问题,请参考以下文章

session.flush与transaction.commit

一个队asp.net session进行了再次封装的C#类的代码

redis存储session配制方法

2019-3-20-UWP-How-to-custom-RichTextBlock-right-click-menu

少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

纪中集训2019.3.20河