首页 存档 技术 查看内容

【PHP专题16】Cookie(小甜饼)和session(会话)

2018-3-30 13:00 |来自: 互联网 322 0

摘要: 一、cookie 是什么? 它常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。php可以创建并取回 cookie 的值。 如何创建 cookie? setcookie() ...

一、cookie 是什么?

它常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。php可以创建并取回 cookie 的值。


如何创建 cookie?

setcookie() 函数用于设置 cookie。

报错很正常是因为不让写入缓冲区,php初始化文件配置问题:

在/library/ect/php.ini 找到这个配置文件,然后查找一项:output_buffering将其值由原来的off改为on,重新启动Apache就ok了。

重启apache请看php专题1


设置好cookie后我们再用全局$_COOKIE得到usr

以下是运行结果


注意:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)

如何删除 cookie?

当删除 cookie 时,您应当使过期日期变更为过去的时间点。


二、php-session


PHP session 变量用于存储有关用户会话的信息,Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。


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


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


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


举例:用户在网上选商品放购物车,准备支付,这时候浏览器php给它新建了个session,并把用户id写入cookie里记录。等用户支付完成后跳转回订单,让用户看到订单支付成功,这时候用户可能接个电话,十分钟后回来,支付时候发现页面失效了,其实就是服务器把你session关闭,需要用户再次登录或者到订单里面重新走一遍支付流程。

代码举例:

用session_start开始一个session

设置session的id和name

获取session的name

结束 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数


欢迎大家来稿分享自己测试和学习心得,来稿联系金阳光。qq邮箱:[email protected]





长按二维码-识别图中二维码




加入免费公益分享的大家庭吧!


让我们一起学习,快速成长。



长按二维码-识别图中二维码



声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部