官方给的setcookie()函数的语法如下:

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

name,Cookie 的名字

使用 $_COOKIE['cookiename'] 调用名为 cookiename 的 cookie。

value,Cookie 的值。此值保存在客户端,不要用来保存敏感数据。     假定 name 是 'cookiename',可以通过$_COOKIE['cookiename'] 取得其值。

expire,Cookie 过期的时间。

这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie 的失效期。或者用mktime()来实现。     time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效。

path,Cookie 在服务器端的有效路径。

如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。

domain,该 cookie 有效的域名。

要使 cookie 能在如 example.com 域名下的所有子域都有效的话,该参数应该设为 '.example.com'。虽然 . 并不必须的,但加上它会兼容更多的浏览器。如果该参数设为www.example.com 的话,就只在 www 子域内有效。细节见Cookie 规范中的 tail matching。

secure,指明 cookie 是否仅通过安全的 HTTPS 连接传送。

当设成 TRUE 时,cookie 仅在安全的连接中被设置。默认值为FALSE。     0 或 1

一般我们在使用setcookie的时候,只是简单的设置一个cookie,用法如下:

setcookie('name','value');

再设置一下有效期,则:

setcookie('name','value',time()+3600); //有效期一个小时

设置所有的子域名共享cookie:

setcookie("TestCookie", $value, time()+3600, "", "splaybow.com");

这样,所有的splaybow.com及其子域名都能共享这个cookie了。

顺便说一句,要获取cookie的内容,方法如下:$_COOKIE['cookiename']

关于PHP设置所有的子域名共享cookie,本文就介绍这么多,希望对您有所帮助!

03-14 02:28