session机制

   一、session定义

Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。

具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭浏览器所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。

需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

session的工作原理

(1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

(2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。

(3)当执行PHP脚本时,通过使用session_register()函数注册session变量。

(4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。


二、销毁session

session_unset()


      释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionid

unset($_SESSION)

    --是指在整个页面(page)生命周期都能操作$_SESSION数组。再次访问无法获取到


session_destory()

--注销session,去除session生命周期,删除session文件,但不影响$_SESSION变量。当session生命周期结束,session_register,session_unset,session_register不能操作。而$_SESSION依然是一个全局变量。他们脱离了映射关系。当再次打开页面则全局变量为空



三、session破坏会话

破坏会话分三步

1)破坏一个会话分三步,每个步骤分不同的 代码,
首先,破坏回话数据,这些数据在默认的情况下存储在服务器硬盘的文件中,这个要使用session_destroy函数

2)破坏实际会话,这个要消除会话cookie,通过会话名称调用setcookie函数,并制定一个过去的时间。如果没有指定这一步,用户以后对这个站点的请求仍然会附带发送他的会话cookie。

3)最后一步是破坏$_SESSION超全局数组,从而删除与绘画相关联的任何数据。办法是给$_SESSION赋一个新值。



四、相关设置

1.session.save_handler=file 
2.session.save_path="/tmp"  (httpd等web守护进程的宿主)写权限。
1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来传递,反之就是使用Query_String来传递;
3.session.name:这个就是SessionID储存的变量名称,可能是Cookie,也可能是Query_String来传递,默认值是“PHPSESSID”;
4.session.cookie_lifetime:这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是这个所以Session不能永久使用!
5.session.gc_maxlifetime:这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除


session.cookie_lifetime()与session.gc_maxlifetime()两个函数需要在session_start()开启之前设置;


修改php.ini的配置
session.use_only_cookies = 1     =>
session.use_only_cookies = 0
session.use_trans_sid=1      =>
    session.use_trans_sid=0
禁用cookie也能使用session

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值