65、PHP中SESSION定义、建立、删除方式

阅读() @2019-03-17 16:05:06

cookie是存储在用户客户端的,而session是存储在服务端的,session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

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

通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。

第一步:开始session会话控制:

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

把用户信息存储到 PHP session 中之前,首先必须启动会话。session_start() 函数必须位于 <html> 标签之前

例如:

<?php session_start(); ?>
<html>
   <head>

   </head>
   <body>

   </body>
</html>

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

第二步:存储 Session 变量:

session变量类似于一个关联数组,可以为其添加元素,比如:

<?php
   session_start();
   $_SESSION['webname'] = '赵一鸣技术博客';
   $_SESSION['weburl'] = 'www.zymseo.com';
   echo $_SESSION['webname'];//赵一鸣技术博客
?>

第三步:删除session变量和session文件:

session不可能永远的存放在服务端,否则用户访问量很大的时候,会消耗内存空间,也会浪费服务器磁盘空间。当用户访问完毕或主动退出登录的时候就需要删除session变量,方法如下:

session_start();
$_SESSION['webname'] = 'zymseo';
$_SESSION['weburl'] = 'www.zymseo.com';
echo $_SESSION['webname'];
session_unset();//将内存中的变量全部删除
session_destroy();//将sessionid对应的文件删除
setcookie(session_name(),'',time()-1,'/');//卸载cookie
echo $_SESSION['webname']; 

其中session_unset()必须放在session_destroy()的前面,因为session_destroy()是删除存放在服务器上的session文件,如果先执行它的话,等到执行session_unset()的时候就找不到对应的sessionId导致报错!

微信二维码
锐壳主机