创建Cookie

  • 2020-09-18 16:22:27
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

网站建设中,通过setcookie()函数创建Cookie。使用setcookie()函数的前提是客户浏览器支持Cookie,如果客户禁用Cookie,setcookie()将返回false。语法格式如下:

setcookie(name,value,expire,path,domain,secure)

setcookie()函数向客户端发送一个HTTPcookie。如果成功,则该函数返回true,否则返回false。setcookie()函数的参数说明如表所示。

56ef552da233ee418229299ce7df444e.jpg

【示例1】如何设置并发送cookie。<?php$value = "my cookie value";//发送一个简单的 cookiesetcookie("TestCookie",$value);?>

注意:在发送cookie时,cookie的值会自动进行URL编码。接收时会进行URL解码。如果不需要这样,可以使用setraw-cookie()函数进行代替。

【示例2】设置一个24小时有效期的cookie。

<?php$value = "my cookie value";//发送一个24小时过期的cookiesetcookie("TestCookie",$value, time()+3600*24);?>

如果要把cookie保存为浏览器进程,即浏览器关闭后就失效。那么可以直接把expiretime设为0。如:

<?php$value = "my cookie value";//发送一个关闭浏览器即失效的cookiesetcookie("TestCookie",$value, 0);?>

参数path表示Web服务器上的目录,默认为被调用页面所在目录,这里还有一点要说明的,如果网站有几个不同的目录,如一个购物目录、一个论坛目录等,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设置的Cookie在另一个目录的页面里是看不到的,也就是说,Cookie是面向路径的。实际上,即使没有指定路径,Web服务器会自动传递当前的路径给浏览器的,指定路径会强制服务器使用设置的路径。解决这个问题的办法是在调用setcookie()函数时加上路径和域名,域名的格式可以是

http://www.phpuser.com/”

,也可以是“.ph-puser.com”。参数domain可以使用的域名,默认为被调用页面的域名。这个域名必须包含两个“.”,所以如果指定顶级域名,则必须使用“.mydomain.com”。设定域名后,必须采用该域名访问网站cookie才有效。如果使用多个域名访问该页,那么这个地方可以为空或者访问这个cookie的域名都是一个域下面的。

参数secure如果设为“1”,表示cookie只能被用户的浏览器认为是安全的服务器所记住。

注意:value、path、domain 3个参数可以用空字符串""代换,表示没有设置。expire和secure两个参数是数值型的,可以用0表示。expire参数是一个标准的UNIX时间标记,可以用time()或mktime()函数取得,以秒为单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。httponly参数如果设为1,则表示cookie只能被HTTP协议所使用,任何脚本语言都不能获取PHP所创建的cookie,这就有效削弱了来自XSS的攻击。当前设置的Cookie不是立即生效的,而是要等到下一个页面或刷新后才能看到。这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面或刷新后浏览器才能把Cookie从客户的机器里取出传回服务器的原因。

当前文章标题:创建Cookie

当前URL:http://www.lyjtt.cn/news/wzzz/3278.html

上一篇:认识Cookie

下一篇:读取Cookie和删除Cookie

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:15368242187(微信同号)