PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP基础 >> 新手专区 >> 

让PHP COOKIE及时生效,不用刷新就可以使用

让PHP COOKIE及时生效,不用刷新就可以使用

来源:phperz.com  作者:phper  发布时间:2012-05-25
说这个问题 之前先来看一下手册中对cookie的特性描述 常见缺陷: 1,Cookies 不会在设置它的本页生效,要测试一个 cookie 是否被成功的设定,可以在其到期之前通过另外一个页面来访问其值。过期时间是通过参数 expire 来设置的。可以简单地使用 print_r($_COOKIE); 来调

说这个问题 之前先来看一下手册中对cookie的特性描述

常见缺陷:


1,Cookies 不会在设置它的本页生效,要测试一个 cookie 是否被成功的设定,可以在其到期之前通过另外一个页面来访问其值。过期时间是通过参数 expire 来设置的。可以简单地使用 print_r($_COOKIE); 来调试现有的 cookies。

2,Cookie 必须用和设定时的同样的参数才能删除。如果其值一个空字符串,或者是 FALSE,并且其它的参数都和前一次调用 setcookie 时相同,那么所指定名称的 cookie 将会在远程客户端被删除。

3,由于把 cookie 的值设为 FALSE 会使客户端尝试删除这个 cookie,所以要在 cookie 上保存 TRUE 或 FALSE 时不应该直接使用 boolean 值,而应该用 0 来表示 FALSE,用 1 来表示 TRUE

4,可以把 cookie 的名称设置成一个数组,但是数组 cookie 中的每个元素的值将会被单独保存在用户的系统中。考虑使用 explode() 函数用多个名称和值设定一个 cookie。不推荐将 serialize() 用于此目的,因为它可能会导致一个安全漏洞。

php的cookie和header一样,必须在没有任何输出时到向的客户端。并且在setcookie的页面读取不到设定的cookie,下面这个方式其实是手动的通过给$_COOKIE全局变量符值达到,你在当前页面用$_COOKIE取值时可以取到,但这种值只是手动设置的,并不是从客户端传来的。这点要注意。

通常,php里,这样的一段代码.要浏览器刷一下.才能出现cookie..怎么才能让cookie及时生效呢,分享一个让cookie及时生效的一个方法,很实用的,代码如下:
 

  //PHP COOKIE设置函数立即生效,支持数组

  function cookie($var, $value='', $time=0, $path='', $domain=''){

  $_COOKIE[$var] = $value;

  if(is_array($value)){

  foreach($value as $k=>$v){

  setcookie($var.'['.$k.']', $v, $time, $path, $domain, $s);

  }

  }else{

  setcookie($var, $value, $time, $path, $domain, $s);

  }

  }


延伸阅读:
PHP中对Session和Cookie的区分与理解
php中Cookie的简介及使用方法
用cookies来跟踪识别用户
Discuz!登陆验证Cookie机制分析
php中Cookie介绍及其使用
PHP设置COOKIE保留时间为浏览器进程
php 中session和cookie的区别
php中Cookie简介及其使用
各种浏览器对Cookie的限制
php中的cookie
PHP基础:Session与Cookie

php中session和cookie的一些资料整理
PHP CURL 发送COOKIE
PHP curl实现get、post和cookie提交实例讲解
PHP CURL中传递cookie的方法
javascript cookies 存、取、删除实例
JavaScript的Cookie操作函数
判断浏览器是否支持JavaScript和Cookies
Facebook 否认 cookie 跟踪指控
JavaScript cookie详解
Tags: cookie  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号