2019独角兽企业重金招聘Python工程师标准>>>

在PHP中可以使用SESSION来实现一个会话控制,那么具体要怎样去实现?一般来说,一个会话有如下几个基本的步骤:

1.开启一个会话

2.注册会话变量

3.使用会话变量

4.注销变量并销毁会话

当然,这些步骤也不一定都要发生在同一个PHP脚本中,其中的一些步骤可以在多个PHP脚本中发生。下面,就依次具体的谈谈这些步骤。

一、开启一个会话

在使用会话功能前,必须开启一个会话。PHP提供了两种方法来开启一个会话。

第一种方法,就是调用PHP内置函数sesseion_start()来开始一段脚本,这也是最简单的一种方法。

该函数将检查是否存在一个会话ID。如果已经存在会话ID,就将这个已经注册的会话变量载入以便后面使用。如果不存在,就创建一个会话ID,并且使用其能够通过超级全局变量数组$_SESSION进行访问。在要使用到会话的脚本开始部分必须调用session_start()函数。如果没有调用,所有保存在该会话的信息都无法在当前脚本中使用。

第二种方法是将PHP设置成当有用户访问网站的时候就自动开启一个会话。在php.ini文件中的session.auto_start选项完成该设置。不过这种方法有一个很大的缺点:启用auto_start设置导致无法使用对象作为会话变量。这是因为该对象的类定义必须在创建该对象的会话开始之前载入。

二、注册一个会话变量

从PHP4.1版本之后,我们可以将会话变量保存在超级全局数组$_SESSION中。要创建一个会话变量,只需在这些数组中设置一个数组元素,如下实例:

$_SESSION['myage'] = 18;

注意,使用超级全局数组$_SESSION创建会话变量只有在会话结束或者手动重置它时才会失效。根据php.ini文件对会话gc_maxlifttime指令设置,该会话也可能会过期。该指令确定会话的持续时间(单位为秒),超过设置时间,该会话将被自动结束。

三、使用会话变量

上面步骤中有提到过,要在当前脚本中使用已保存的会话变量,必须首先使用session_start()函数启动一个会话。使用该函数之后,就可以通过超级全局数组$_SESSION访问保存的会话变量了,例如,

$_SESSION['myage']。

当使用对象作为会话变量时,在调用session_start()函数重新载入会话变量之前,必须包含该类对象的定义。这样,PHP就知道如何构建这个会话对象。

相反,在检查会话变量是否已经被设置时,必须非常小心。需注意,变量可以被用户通过GET或POST设置。可以通过检查$_SESSION数组来确定一个变量是否是注册的会话变量。可以通过如下所示的代码来检查:

if(isset($_SESSION['myage']))...

四、注销变量与销毁会话

要结束一个会话,首先要注销会话变量,然后销毁会话。当使用完一个会话变量后,就可以将其注销。通过$_SESSION数组的适当元素,可以直接注销会话变量,实例如下:

unset($_SESSION['myage']);

我们不能直接销毁整个$_SESSION数组,因为这样将禁用会话功能。要一次销毁所有的会话变量,可以使用如下所示的语句:

$_SESSION = array();

当使用完一个会话之后,首先应用注销所有变量,然后再调用:session_destroy()来清除会话ID。

至此,使用SESSION实现简单会话的步骤全部结束。

转载于:https://my.oschina.net/u/1162598/blog/145447

使用SESSION实现PHP会话的步骤相关推荐

  1. Session攻击手段(会话劫持/固定)及其安全防御措施

    一.       概述 对于Web应用程序来说,加强安全性的第一条原则就是--不要信任来自客户端的数据,一定要进行数据验证以及过滤才能在程序中使用,进而保存到数据层.然而,由于Http的无状态性,为了 ...

  2. Session攻击(会话劫持+固定)与防御

    阅读目录 1.简介 2.会话预测 3.会话劫持 3.1.含义 3.2.攻击步骤 3.3.防御方法 4.会话固定 4.1.含义 4.2.攻击步骤 4.3.防御方法 5.参考文献 回到顶部 1.简介 Se ...

  3. 在SpringBoot中使用Spring Session解决分布式会话共享问题

    在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...

  4. 5GC PDU Session Establishment PDU会话建立流程

    这里写目录标题 1.UE-AMF PDU Session Establishment Request 发起PDU会话建立请求 2.SMF Selection SMF的选择 3.AMF-SMF SmCo ...

  5. 【5G核心网】 PDU Session Modification PDU会话修改

    当修改在 UE 和网络之间的一个或几个 QoS 参数时修改时,使用该过程. 1. UE or network requested PDU Session Modification (non-roami ...

  6. 使用Spring Session做分布式会话管理

    在Web项目开发中,会话管理是一个很重要的部分,用于存储与用户相关的数据.通常是由符合session规范的容器来负责存储管理,也就是一旦容器关闭,重启会导致会话失效.因此打造一个高可用性的系统,必须将 ...

  7. perl cgi session php,如何使用Perl中的CGI :: Session处理Web会话?

    我使用CGI在Perl中创建Web应用程序.此应用程序实现模型视图控制器体系结构,并且系统在根目录中具有以下结构: -楷模 -views -controllers -index.pl 文件index. ...

  8. SDP: Session Description Protocol(会话描述协议) (RFC2327)

    SDP: SessionDescription Protocol(会话描述协议) (RFC2327) 1概述 SDP也是MMUSIC工作组的一个产品,在MBONE内容中用得很多.其目的就是在媒体会话中 ...

  9. 在共享dll中使用mfc_在SpringBoot中使用Spring Session解决分布式会话共享问题

    作者:简单的土豆 来源:www.jianshu.com/p/e4191997da56 前言 如果你正在使用Java开发Web应用,想必你对HttpSession非常熟悉,但我们知道HpptSessio ...

  10. tomcat组播实现session一致性_java会话技术-Session

    Session技术 Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间.所以说Sessi ...

最新文章

  1. linux文件操作篇 (一)文件属性与权限
  2. WPF 动画显示控件
  3. 绍兴袍江计算机培训,绍兴春华电脑基础培训班
  4. python中的对象拷贝
  5. 字节跳动最新开源!沈阳java培训哪个好
  6. apache http server 停止工作_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
  7. 魏代汉,晋代魏,背后是士族与寒族的博弈,也是士族门阀的形成时期
  8. 用 CSS 做轮播图
  9. 计算机java语言教程,计算机JAVA教程二讲Java语言基础知识.doc
  10. settimeout( )是全局函数吗_JS函数的执行
  11. 前端学习(508):水平和垂直居中第一种方式
  12. hive中统计某列数组的元素个数
  13. 慧之声科技- 程序员的爱情故事
  14. java技术总监_技术总监-JAVA岗位职责
  15. 学习-Java循环之continue
  16. 单道批处理操作系统、多道批处理操作系统以及分时操作系统区别
  17. 阿里云服务器部署StreamX
  18. PS如何给白衬衫换色
  19. 【文件上传绕过】——二次渲染漏洞
  20. Vue 框架-06-条件语句 v-if 实现选项卡效果

热门文章

  1. 《Thumbs up? Sentiment Classification using Machine Learning Techniques》笔记
  2. Wu-Manber字符串多模式匹配
  3. 使用GoKart对Go代码进行静态安全分析
  4. Raki的读paper小记:Simplify the Usage of Lexicon in Chinese NER
  5. dao获取到mysql存储函数_GreenDao3.0使用
  6. 7 ida pro 网盘_7月上市新车汇总 日产轩逸领衔 自主高端红旗HS7最具潜力
  7. 136.Single Number
  8. [UNIX]The UNIXHATERS Handbook
  9. q 与 blockquote 的区别
  10. Git发生SSL certificate problem: certificate ha错误的解决方法