php 浅谈Session的使用

发表于 2021-02-15  1.27k 次阅读


201803081.jpg

一、简介

        当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

        这就出现了Session,Session是存储在服务端的临时会话信息,当用户离开网站后,此临时会话信息就会删除(或者长期不活动,超出Sessions的储存时长)。

        Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

二、开始使用Session

        使用Session非常简单,不过需要提前开启Session。

session_start();

   上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。

         储存

$_SESSION['data'] = 1;

   上面的代码会将1储存在session['data']当中。

        获得

$data = $_SESSION['data'];

   上面的代码会获得储存在session['data']当中值。

        删除

unset($_SESSION['data']);

   上面的代码会注销session['data']。如果注销后再次取值会出错:未定义的变量data。

        终结此次Session

session_destroy();

   某些时候,我们需要销毁当前会话中的全部数据。注意,当使用session_destroy();后,我们还想使用Session的话,必须重新调用session_start()。

在使用Session时,我们通常需要设置此次会话的Session的过期时长。

        可在开启Session时设置

session_start(600);

        Session有效期也可以在配置php.int设置时长

ini_set('session.gc_maxlifetime', 600);

        上面的两段代码都是设置有效期为600秒(m)。说明这次会话在600秒没有任何活动,此次会话的Session就注销。

三、使用场景

        因为Session时存储在服务器端的,比较安全,切不会轻易的被浏览用户改变,所以通常用来储存一些重要又会通用的数据,比如说用户的唯一ID。Session的储存数据量比较小,且会消耗服务器的内存和cup,一些大型的数据不推荐存储在Session中。

本站文章基于国际协议BY-NA-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0

一盏灯 一座城 找一人 一路的颠沛流离