手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆

浅谈TP的COOKIE类

首页 > PHP Framework >

TP的COOKIE类是被封装好的,里面包含了一些常见的操作,set,get,clear等等,其实TP的cookie类与其他的COOKIE有着明显的不同,那就是TP的COOKIE ID是唯一的(不好意思,在我写完这段的时候,为了防止写错,我又重新打开了cookie.class.php,却突然发现,现在的cookie功能与以前的不一样了。)

以前的set函数是类似于这样:

PHP代码
  1. $_COOKIE[C('COOKIE_ID')][C('COOKIE_PREFIX').$name] = $value ;  
如今的又恢复成:
PHP代码
  1. $_COOKIE[C('COOKIE_PREFIX').$name]  =   $value;  

既然如此,我还是按最新的稍作讲解吧。。。

Cookie类,固名思意,就是把对COOKIE的操作进行了封装,通过定义一个COOKIE名的前缀,以防与其他COOKIE产生冲突,然后加上COOKIE变量的名称,就可以进行赋值、取值等。

Cookie类所有的操作都采用了静态方法,即在实际应用中,只要加载了Cookie类,就可以随时使用了:

PHP代码
  1. <?  
  2. //假设cookie 前缀为 'neatcn_'  
  3. Cookie::get('test');  
  4. //return $_COOKIE['neatcn_test'];  
  5.   
  6. Cookie::set('test','123456');  
  7. //return setcookie('neatcn_test','123456',xxx,xxx,xxx);  
  8. //xxx是默认定义的常量,如默认COOKIE的过期时间,作用域等  
对于这些封装,可以方便使用,同样需要注意的是,在Cookie操作时,请不要输出header,否则可能会出现header already send的warning,同时无法写cookie,这点请需要注意。

另外一个需要注意的是,cookie在不同的浏览器下面有着不同的限制,最常见的就是cookie的长度,请尽量不要超过4K的字节。

参考资料:

FF浏览器
  1. * 一个 Cookie 档案最多只能包含 300 个 Cookies。(这只适用于 Netscape,因为它把所有的 Cookie 都放在一个档案。)  
  2. * 每一个 Cookie 的大小不得超过 4KB。  
  3. * 每一个 URL 路径,最多只能设定 20 个 Cookie。  




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: thinkphp, cookie, class

« 上一篇 | 下一篇 »

只显示10条记录相关文章

海龙CMS1.1 beta发布 (浏览: 32191, 评论: 25)
ThinkPHP怎么样更好的使用Smarty第三方插件 (浏览: 24183, 评论: 2)
ThinkPHP介绍 (浏览: 23228, 评论: 3)
为ThinkPHP开发自定义标签几个注意事顶 (浏览: 22587, 评论: 0)
TP单字母函数整理 (浏览: 22520, 评论: 1)
thinksns 不再开发了? (浏览: 22431, 评论: 4)
[转]PHP删除cookie的一个小秘密 (浏览: 19208, 评论: 1)
IE中iframe跨域丢失Session问题(续 p3p) (浏览: 18301, 评论: 0)
ThinkPHP两周年,同时有新的更新 (浏览: 18001, 评论: 2)
解决使用ThinkPHP框架自带模版程序处理<??>出现的问题 (浏览: 17988, 评论: 0)

发表评论

评论内容 (必填):