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 app\Admin\controller;
use think\Controller;
use think\Session;
class Basic extends Controller
{
//控制器初始化方法_initialize,在该控制器的方法调用之前首先执行。
public function _initialize()
{
//判断有无username这个session,如果没有,跳转到登陆界面
if(!session('username')){
return $this->error('您没有登陆',url('Login/login'));
}
}
}