回"问题补充"
PHP手册上关于setcookie函数的expire参数有这样一个解释
If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).
如果设为0 或者忽略该参数, cookie将在session结束时(关闭浏览器时)过期
php setcookie 后无法立即生效,必须到下一个页面才能生效
你第一次打开相当于是 setcookie,这个时候 $_Cookie 中还找不到这个键值
刷新后,相当于第二次访问,这个时候才能读取之前设置的cookie值
所以要刷新后才会显示 :)
用来注册 COOKIE 的函数.主要是用于以数组形式注册多个 COOKIE .
各个参数和 setcookie 函数相同.除了第二个参数..这个自定义函数允许你把数组传入,并注册成 COOKIE.中间的循环注册 COOKIE 代码即是..
$_COOKIE[$var] = $value;
这一行代码,是让 COOKIE 在当前脚本中即时生效用的.. $_COOKIE 虽然是预定义变量..但是变量就是变量..是允许自己往里面存数据的..
设置方法如下:
cookie有效期在退出作用域那一刻开始生效;
发错地方了!
PHP中使用cookie
①.、设置Cookie
PHP用SetCookie函数来设置Cookie.必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数.
SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下:
int
SetCookie(string
name,
string
value,
expire,
path,
domain,
secure);
除了name之外所有的参数都是可选的.value,path,domain三个参数可以用空字符串代换,表示没有设置;expire
和
secure两个参数是数值型的,可以用0表示.expire参数是一个标准的Unix时间标记,可以用time()或mktime()函数取得,以秒为单位.secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输.
当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因.
在同一个页面设置Cookie,实际是从后往前,所以如果要在插入一个新的Cookie之前删掉一个,必须先写插入的语句,再写删除的语句,否则可能会出现不希望的结果.
来看几个例子:
简单的:
SetCookie("MyCookie",
"Value
of
MyCookie");
带失效时间的:
SetCookie("WithExpire",
"Expire
in
hour",
什么都有的:
SetCookie("FullCookie",
"Full
cookie
value",
"/forum",
".phpuser.com",
①.);
这里还有一点要说明的,比如站点有几个不同的目录,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设的Cookie在另一个目录的页面里是看不到的,也就是说,Cookie是面向路径的.实际上,即使没有指定路径,WEB服务器会自动传递当前的路径给浏览器的,指定路径会强制服务器使用设置的路径.解决这个问题的办法是在调用SetCookie时加上路径和域名,域名的格式可以是"",也可是".phpuser.com".
SetCookie函数里表示value的部分,在传递时会自动被encode,也就是说,如果value的值是"test
如果要设置同名的多个Cookie,要用数组,方法是:
SetCookie("CookieArray[]",
①.");
或
SetCookie("CookieArray[0]",
SetCookie("CookieArray[1]",
PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单.
比如设置一个名为MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$myCookie,这个变量的值就是Cookie的值.数组同样适用.另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组.
分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效)
echo
$MyCookie;
$CookieArray[0];
count($CookieArray);
$HTTP_COOKIE_VARS["MyCookie"];
就这么简单.
要删除一个已经存在的Cookie,有两个办法:
一是调用只带有name参数的SetCookie,那么名为这个name的Cookie将被从关系户机上删掉;另一个办法是设置Cookie的失效时间为time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了).
要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的.
首先是必须在HTML文件的内容输出之前设置;
其次不同的浏览器对Cookie的处理不一致辞,且有时会出现错误的结果.
以上就是土嘎嘎小编为大家整理的php中cookie即时生效相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!