首页 理论教育封装的Cookie|PHPMVC开发实战

封装的Cookie|PHPMVC开发实战

【摘要】:下面通过示例代码,演示Cookie函数的实际应用。Cookie能够存放包括中文在内的字符,但长度需要控制在225个字符之内。通过前面的学习,相信读者已经能够掌握Session及Cookie的操作了。虽然Cookie存放于客户端,但是并不意味着Cookie不适合用于会员验证等场景。所以很多网站会使用加密的方式存放Cookie用户名及密码,甚至结合软件与硬件签名实现高度安全的Cookie。总而言之,使用Cookie存放登录数据是可行的,但要做好加密与解密相关操作。

Cookie是网站开发中最常使用的技术之一,与Session类似,Cookie也是用于存放客户端临时数据的,不同之处在于Cookie存放于客户端操作系统文件夹上(由浏览器指定),而Session存放于服务器指定的文件夹(或由Session驱动指定存放环境)。这就意味着Cookie是能够被用户操作,但是由于存放于客户端,服务器的IO压力将会得到改善(在超大流量的网站中尤其突出)。所以一般情况下如果网站的安全性需求比较高,需要使用Session;如果是一些比较开放的数据,例如访客统计、个性化设置等可以使用Cookie。

Cookie的操作与Session相类似,但比Session简单许多。同样,ThinkPHP也提供了Cookie函数用于处理客户端Cookie,该函数格式如下所示。

cookie($name,$value='',$option=null)

其中参数name表示Cookie存放名称(即key),不支持数组;value表示Cookie值;option表示Cookie初始化环境配置参数,该参数中的配置参数可以通过配置文件统一配置。下面通过示例代码,演示Cookie函数的实际应用。

1.增删改查操作

(1)增加Cookie

(2)删除Cookie

(3)修改Cookie(www.chuimin.cn)

(4)获取Cookie

(5)删除所有Cookie

(6)删除指定前缀的Cookie

对于查询而言,不管Cookie前缀设置如何,只要使用cookie函数来获取,系统都能够自动识别。Cookie能够存放包括中文在内的字符,但长度需要控制在225个字符之内。

2.Cookie配置

前面提到过Cookie函数支持参数配置,但通常情况下只需要在配置文件中配置即可。Cookie是本地化保存机制,不需要驱动扩展,只需要指定存放路径、有效期、作用域即可,如以下代码所示。

通过前面的学习,相信读者已经能够掌握Session及Cookie的操作了。虽然Cookie存放于客户端,但是并不意味着Cookie不适合用于会员验证等场景。恰恰相反,由于Cookie存放于客户端,使得数据能够长时间保存(除非用户主动删除),这就意味着只要用户登录一次,在很长一段时间内就不需要重复进行登录(通过配置COOKIE_EXPIRE选项实现),这对用户而言无疑是良好的体验。所以很多网站会使用加密的方式存放Cookie用户名及密码,甚至结合软件与硬件签名实现高度安全的Cookie。总而言之,使用Cookie存放登录数据是可行的,但要做好加密与解密相关操作。