欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中如何创建Cookie

程序员文章站 2022-03-25 15:12:53
...
Cookie的创建十分简单,只要用户的浏览器支持 Cookie 功能,就可以使用 PHP 内建的函数来建立一个新的Cookie。在PHP中通过 setcookie() 函数创建 Cookie。在创建 Cookie 之前必须了解的是, Cookie是 HTTP 头标的组成部分,而头标必须在页面其他内容之前发送,因此它必须最先输出。所以即使是空格或者是空行,都不要在调用setcookie() 函数之前输出。 若在 setcookie() 函数前输出一个 HTML标记、echo语句,甚至一个空行都会导致程序出错。

其语法是如下的格式:

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

setcookie() 函数定义一个和其余的 HTTP 标头一起发送的 Cookie,它的所有参数是对应 HTTP 标头 Cookie 资料的属性。虽然 setcookie() 函数的导入参数看起来不少,但除了参数name , 其他参数都是非必须的,而我们经常使用的只有 $name , $value和 $expire 这三个参数。

setcookie() 函数的 参数说明如下:

1) name

Cookie 的变量名

可以通过 $_COOKIE["cookiename"] 调用变量名为 cookiename 的 Cookie

2)value

Cookie 变量的值,该值保存在客户端,不能用来保存敏感数据

可以通过 $_COOKIE["values"] 获取名为 values 的值

3) expire

Cookie 的失效时间,expire 是标准的 UNIX 时间标记,可以用 time()函数 或者 mktime() 函数获取,单位为秒

如果不设置 Cookie 的失效时间 ,那么 Cookie 将永远有效,除非手动将其删除

4) path

Cookie 在服务端的有效路径

如果该参数设置成 “ / ”,则它在整个 domain 内有效, 如果设置为 “ /11 ”,它在 domain 下的 /11 目录及子目录内有效。默认是当前目录

5) domain

Cookie 有效地域名

如果要使 Cookie 在 abc.com 域名下的所有子域名都有效,应该设置为 abc.com

6) secure

指明 Cookie是否通过安全的 HTTPS,值为 0 或 1

如果值为1,则 Cookie 只能在 HTTPS 连接上有效;如果值为默认值 0,则 Cookie 在 HTTP 和 HTTPS连接上均有效。

如果只有$name 这一个参数,则原有此名称的 cookie 选项将会被删除,也可以使用空字符串来省略此参数。参数$expire 和 $secure 是一个整数,可以使用 0 来省略此参数,而不是使用空字符串。但 参数$expire 是一个正规的 UNIX 时间整数,由time()或者 mktime()函数传回。 参数 $secure 指出此 Cookie 将只有在安全的 HTTPS 连接时传送。

使用 setcookie() 函数的全部参数设置,实例代码如下的显示

<?php
  setcookie("username","sky",time()+60*60,"/test",".php.cn",1);
?>

说明:上例中表示建立一个识别名称为“username” 的 Cookie,其内容值为字符串“sky”,而在客户端的存储有效期为1小时。参数"/test" 表示 Cookie 只有在故武器的这个子目录或子目录中有效。参数".php.cn" 使 Cookie能在如 php.cn 域名下的所有子域中都有效,虽然 “.” 并不是必需的,但加上它会兼容更多的浏览器。当最后一个参数设为 1 时,则 Cookie 仅在安全的连接中才能被设置。

使用setcookie()给的值只能是数字或者字符串,不能是其他的复杂结构。

以上就是php中如何创建Cookie的详细内容,更多请关注其它相关文章!

相关标签: php,创建,Cookie