php控制技术有哪些,十: PHP会话控制技术

1.为什么要使用会话控制技术?

Web是通过HTTP协议进行实现的,HTTP协议是无状态协议,HTTP协议没有内部机制来记录会话状态,同一用户请求页面两次的时候,HTTP协议不会认为两次请求都来自同一用户,会认为是两次请求独立。若用户执行登陆操作,再次请求页面,HTTP协议不会认为该用户之前做过登陆。因无法保持该用户之前登陆状态,故无法在不同页面之间进行用户跟踪与保持。会话控制技术就是为了解决这样的问题,它的思想是允许服务器跟踪同一客户端做出的连续请求。

44d4a9f8968a

2.会话控制技术的实现方式

(1)通过GET参数传递,把用户状态信息通过GET参数方式传递给服务端。缺点:1.用户信息会暴露在地址栏中不安全。2.传递过程中参数有可能会丢失。所以是一种拙劣的方式.

(2)Cookie,cookie是一种  服务端发送给客户端的片段信息,再存储在客户端浏览器的内存或硬盘上的  技术

44d4a9f8968a

Cookie有读、写、删除操作

写:

44d4a9f8968a

读取       $_COOKIE

删除      让其过期            setcookie(  $name   ,  ''  ,  time()-1000  )

Cookie的优缺点

优点:信息保存在客户端,不占用服务端资源,效率高

缺点:不安全,用户若禁止Cookei的使用,服务端就无法识别用户信息

(3)Session  session是将用户信息存储在服务端的技术,一般不会独立使用,会配合session使用

44d4a9f8968a

session的操作

使用session之前,必须使用session_start()

读写           $_SESSION;

清空          $_SESSION$_SESSION = [];      或         $_SESSION = NULL;

删除session文件         session_destroy()

删除session文件后,要把删除保存sessionId的cookie文件

php.ini文件中session的设置

44d4a9f8968a

44d4a9f8968a

session.save_handler              session的存储据柄   (memcache,redis,mysql)

session优缺点

优点:信息安全

缺点:占用服务器资源,分布式问题,多台服务器中的session无法共享,可用redis解决

若是cookie被用户禁用,可通过session_name()=session_id()来传递sessionid

或用SID传递,若cookie开启,SID是空,若关闭SID与session_name()=session_id()相等

Session的存储方式

默认存储在服务器文件中,可使用session_set_save_handler(),存储到mysql    ,    memcache    ,    redis服务器中

44d4a9f8968a

44d4a9f8968a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值