来源:自学PHP网 时间:2014-11-27 20:45 作者: 阅读:次
[导读] cookie是一个用于存储信息到客户端浏览器中的我们可以利用cookie来记录用户的一些相关信息,像站长统计代码就基于cookie与ip来实现的,下面我来介绍cookie使用与注意事项 PHP cookie用法,代码...
PHP cookie使用方法与注意事项cookie是一个用于存储信息到客户端浏览器中的我们可以利用cookie来记录用户的一些相关信息,像站长统计代码就基于cookie与ip来实现的,下面我来介绍cookie使用与注意事项. PHP cookie用法,代码如下:
删除Cookie (1)调用只带有name参数的setcookie(); (2)使失效时间为time()或time-1; 代码如下:
建议删除方法,代码如下:setcookie('mycookie','',time()-3600); PHP提供一个很好用的函数mktime(). 你只要按顺序传送给mktime()你希望表示的小时,分钟,秒数,月份,日期,及年份,mktime()就会返回该日期自1970年1月1日的总秒数,因此,如果需要模拟 Y2K 问题,代码如下:
获取COOKIE过期时间的办法,代码如下:
注:在发送 cookie 时,cookie 的值会自动进行 URL 编码,接收时会进行 URL 解码,如果你不需要这样,可以使用 setrawcookie() 代替. PHP设置、获取与删除COOKIE,代码如下:
方法一: 在PHP里Cookie的使用是有一些限制的。 1、使用setcookie必须在<html>标签之前 2、使用setcookie之前,不可以使用echo输入内容 3、直到网页被加载完后,cookie才会出现 4、setcookie必须放到任何资料输出浏览器前,才送出 由于上面的限制,在使用setcookie()函数时,学会遇到 “Undefined index”、”Cannot modify header information – headers already sent by”…等问题,解决办法是在输出内容之前,产生cookie,可以在程序的最上方加入函数 ob_start(); ob_start:打开输出缓冲区 函数格式Lvoid ob_start(void) 说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区,为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容. 方法二: 解决Warning: Cannot modify header information – headers already sent by …… 前几天装了个php的大头贴系统测试,发现报错Warning: Cannot modify header information – headers already sent by ….今天又装openads,还是出现这个问题。怒了。上网找了半天,有人说要在文件开头写上ob_start();,结果失败。后来打开 php.ini 然后把 output_buffering 设为 on 。重起appache,OK。看来这才是解决办法。 特别注意:如果使用utf-8编码,一定要去掉UTF-8中的BOM,这都是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的。去掉bom,可以用Notepad++打开转换一下。切记,切记,切记!(这问题害我折腾了半天。) 方法三: 当前设置的Cookie 不是立即生效的,而是要等到下一个页面时才能看到,这是由于在设置的这个页面里. Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因,在同一个页面设置Cookie,实际是从后往前,所以如果要在插入一个新的Cookie之前删掉一个,你必须先写插入的语句,再写删除的语句,否则可能会出现不希望的结果。 删除一个COOKIE时,该COOKIE的值在当前页面仍然是有效的,也就是值还是存在的,在下次请求该页面或其它页面时就不会存在了,也就是说PHP的COOKIE相关操作都是异步的,当前面设置或删除了COOKIE,要等到下次请求时才能正确反应出来. 删除COOKIE时最好不要用setcookie(cookie名)这种方法,这样很容易删除整个COOKIE数组,具体我不细说了,注意就行了,删除COOKIE的最好方法是设有效时间为过去,当浏览器发现COOKIE有效期过后会确发删除COOKIE事件,还有一点要注意的时,设置COOKIE时有几个参数,删除时也要有几个参数,否则容易出错. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com