• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[PHP]session的一些要点

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、session_start([array $options=array()])

1.只能在输出http头前启动此函数,因为如果需要改写sessid的键和值,需要在http报文头发出前就开始定义了;

2.$options有很多选项,包括设在sessid的键名(但是好像不包括设置值),sess CG启动频率,sess handler等等;

二、session_name([string $name])

1.读取或设置sess的键名;

2.如果是设置,需要在调用session_start()之前;

3.设置sess的键名后,即使不调用session_id()函数,一个由系统生成的新的session_id也会被设置;

4.旧的sess cookie的键值对被废弃(此时浏览器还会保存旧的sess cookie的键值对,但是这个已经毫无用处了);

三、session_id([string $id])

1.读取或设置sess的值;

2.如果是设置,需要在调用session_start()之前,否则会出现一种情况,调用session_start()后,包含旧的sess cookie的键值对的报文头已经生成,但是PHP进程中session_id()返回的值又被session_id()设置改变了,最终导致浏览器中的SESSID和PHP进程的SESSID不一致;

3.通过此函数可以为两个客户端设置同一个sessID,从而共用一个会话;

四、session_destroy()

1.销毁服务器中当前SESSID保存的值;

2.被销毁后的SESSID可以重用,例如销毁后浏览器依然保存着这个sess cookie的键值对,当浏览器重新请求带有session_start()的服务器脚本,服务器则重用这个SESSID,但是这相当于是一个新的SESSID,因为值在上一次访问时销毁了;

3.运用这一特性,可以实现用户多地点登录把上一个登录踢下线的操作:找个持久性保存数据处保存用户每一次登录的SESSID,登录前先查看用户是否有上一次登录的SESSID,如果有先把这个SESSID销毁,然后再进行新的登录,新的登录产生的SESSID重写到保存用户每一次登录的SESSID处;

五、session_write_close()

当调用这个函数,线程将会把对会话变量的更改保存到session,并且释放该session(释放原因参见第六点);

 六、基于事务的session

同一时间只允许一个线程占用session,一旦有线程成功调用session_start(),其余线程调用session_start()会一直阻塞,直到占用线程退出,或调用session_destroy()、session_write_close();


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php 弱类型总结发布时间:2022-07-10
下一篇:
PHP输出毫秒时间戳发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap