企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
1、什么是cookie? cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。 每个浏览器都有存储cookie的功能,只要用户允许浏览器存储服务端设置的cookie,一般情况下,每个cookie文件最大是4kb,每个浏览器最多存储50个cookie文件,当cookie文件数量达到最大50个时,并且用户还在继续浏览网页,后续还有更多的cookie需要存储,那么浏览器就会随机的删除目前已有的cookie文件或者是删除不经常用的cookie文件,以此来存储新的cookie。 cookie的建立十分简单,只要用户的浏览器支持cookie功能,就可以用PHP内建的函数setcookie()来建立一个新的cookie,cookie是http标头的一部分,因此在一般情况下,setcookie()必须在其他信息输出到浏览器前调用,否则会报错,所以即使是空格或空行,都不要在调用setcookie函数之前输出,这个和调用header()函数的限制类似。 注意,这里只是说【一般情况下】,setcookie()函数必须写在最前面。 2、如何设置cookie? setcookie()函数的语法格式如下: setcookie()函数定义一个和其余的http标头一起发送的cookie,它的所有参数是对应http标头cookie资料的属性。虽然setcookie()函数的参数设置有很多,但是除了name,其他都是非必需的,我们经常使用的也只有前3个参数,每个参数的具体意义如下图: setcookie($name,$value,$expire,$path,$domain,$secure) 1、$name:cookie名称; 2、$value:cookie值; 3、$expire:cookie有效期限,一般设置为time()+有效秒数,如果设置为0,那么浏览器关闭的时候,之前cookie就会自动清除; 4、$path:有效路径,如果不设置的话,只能读取本文件夹下的cookie,它的上级文件夹或者是同级文件夹下的cookie是读取不到的; 5、$domain:指定此cookie所属服务器的网址名称,预设是建立此cookie服务器的网址; 6、$secure:指明cookie是否仅通过安全的https链接传送中的cookie的安全识别常熟,如果设定此值,则代表只有在某种情况下,cookie才能在客户端与服务端之间传递。当设置为true时,cookie仅在安全的连接中被设置,默认是false。 我们经常设置的cookie代码如下: setcookie('weburl','http://www.baidu.com',time()+3600,'/','baidu.com',true); a页面设置了cookie,在b页面获取的时候,代码如下: $_COOKIE['cookie名称']; 上面提到,setcookie()必须放在所有输出代码的前面,这个不是非常准确,因为我们通过一些设置,即使setcookie()函数放在输出代码的后面,也不会报错,有2种方法: 1、在php.ini文件中,设置output_buffering的值为On,这样的话,程序执行的时候会把所有的输出代码先放到缓冲区,等到setcookie()函数执行之后,才会释放并一并执行缓冲区的代码。 2、在输出代码的前面加上ob_start()函数,这样也不会报错!