php中Session的原理

session 跟踪用户的原理

当第一次访问网站时,Seesion_start()函数就会创建一个唯一的Session ID,并自动通过HTTP的响应头,将这个Session ID保存到客户端Cookie中。同时,也在服务器端创建一个以Session ID命名的文件,用于保存这个用户的会话信息。当同一个用户再次访问这个网站时,也会自动通过HTTP的请求头将Cookie中保存的Seesion ID再携带过来,这时Session_start()函数就不会再去分配一个新的Session ID,而是在服务器的硬盘中去寻找和这个Session ID同名的Session文件,将这之前为这个用户保存的会话信息读出,在当前脚本中应用,达到跟踪这个用户的目的。 Session ID 是随机生成的,因此能保证唯一性和随机性。

php 的 $_SESSION 变量 覆盖问题:可以理解为这个用户当前会话独立拥有的数据,会话结束这些数据都会不存在了,每一个用户的SESSION数据都是独立的。

<?php
namespace appAdmincontroller;
use thinkController;
use thinkSession;
class Basic extends Controller
{
  //控制器初始化方法_initialize,在该控制器的方法调用之前首先执行。
  public function _initialize()
  {
    //判断有无username这个session,如果没有,跳转到登陆界面
    if(!session('username')){
      return $this->error('您没有登陆',url('Login/login'));
    }
  }
}
原文地址:https://www.cnblogs.com/caibaotimes/p/13934814.html