您的位置:

phpsetcookie路径,php中setcookie参数

本文目录一览:

php setcookie(name, value, expires, path, domain,

setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie 和其它标头一样 cookie 必须在脚本的任何其它输出之前发送(这是协议限制) 这 需要将本函数的调用放到任何输出之前 包括 和 head 标签以及任何空格 如果在调用 setcookie() 之前有任何输出 本函数将失败并返回 FALSE 如果 setcookie() 函数成功运行 将返回 TRUE 这并不说明用户是否接受了 cookie 函数定义 bool setcookie ( string name [ string value [ int expire [ string path [ string domain [ bool secure]]]]] ) setcookie() 参数详解

参数  说明 举例 name cookie的名字 使用 $_COOKIE[ cookiename ] 调用名为 cookiename 的 cookie value cookie的值 存放在客户端 不要存放敏感数据 假定 name 是 cookiename 可以通过 $_COOKIE[ cookiename ] 取得其值 expire

Cookie 过期的时间 这是个 Unix 时间戳 即从 Unix 纪元开始的秒数

换而言之 通常用 time() 函数再加上秒数来设定 cookie 的失效期

或者用 mktime() 来实现

time()+ * * * 将设定 cookie 天后失效

如果未设定 cookie 将会在会话结束后(一般是浏览器关闭)失效

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

如果该参数设为 / 的话 cookie 就在整个 domain 内有效

如果设为 /foo/ cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效 例如 /foo/bar/

默认值为设定 cookie 的当前目录

domain 该 cookie 有效的域名

要使 cookie 能在如 example 域名下的所有子域都有效的话 该参数应该设为 example

虽然 并不必须的 但加上它会兼容更多的浏览器

如果该参数设为 example 的话 就只在 子域内有效

细节见Cookie 规范中的 tail matching

secure

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

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

例子 setcookie() 发送例子

复制代码 代码如下: $value = something from somewhere ; setcookie("TestCookie" $value); setcookie("TestCookie" $value time()+ ); /* expire in hour */ setcookie("TestCookie" $value time()+ "/~ra *** us/" " utoronto ca" );

注意 cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量 如果不想这样并且在使用 PHP 的话 可以用 setrawcookie() 来代替 下面这个简单的例子可以得到刚才所设定的 cookie 的值

复制代码 代码如下: ?php // 输出单独的 cookie echo $_COOKIE["TestCookie"]; echo $HTTP_COOKIE_VARS["TestCookie"]; // 另一个调试的方法就是输出所有的 cookie print_r($_COOKIE); ?

要删除 cookie 需要确保它的失效期是在过去 才能触发浏览器的删除机制 下面的例子说明了如何删除刚才设置的 cookie 例子 setcookie() 删除例子

复制代码 代码如下: // 将过期时间设为一小时前 setcookie("TestCookie" "" time() ); setcookie("TestCookie" "" time() "/~ra *** us/" " utoronto ca" );

也可以通过在 cookie 名称中使用数组符号来设定数组 cookie 可以设定多个 cookie 作为数组单元 在脚本提取 cookie 时所有的值都放在一个数组种 例子 setcookie() 中使用数组的例子

复制代码 代码如下: ?php // 设定 cookie setcookie("cookie[three]" "cookiethree"); setcookie("cookie[o]" "cookieo"); setcookie("cookie[one]" "cookieone"); // 刷新页面后 显示出来 if (isset($_COOKIE[ cookie ])) { foreach ($_COOKIE[ cookie ] as $name = $value) { echo "$name : $value br /n"; } } ? lishixinzhi/Article/program/PHP/201311/21055

如何设置cookie的服务器路径

Cookie的setPath()方法,指定的是可访问该Cookie的目录!默认只有同一个Web服务器上同一个路径下设置了该cookie的网页读取!如果你想让这个cookie在多个页面中共享,那么需要使用Cookie的setPath()方法设置path

cookie.setPath("/"),在Tomcat的webapps目录下的所有目录中共享这个cookie。

cookie.setPath("/app1"),只能在app1应用下获取这个cookie,就算这个cookie是app2产生的,app2也不能访问它。

cookie.setPath("/app1/action"),只能在app1/action目录下获取这个cookie。

我想你应该可以明白了,cookie的路径指的是可以访问该cookie的顶层目录,该路径的子路径也可以访问该cookie。

====

在中设置的cookie,但需要在zhidao.baidu.com下获取,这样就需要Cookie的setDomain()方法了。

cookie.setPath("/");

cookie.setDomain("baidu.com");//只给出域名的相同部分

response.add(cookie);

php使用setcookie设置的session在指定目录有效

?php

session_set_cookie_params(0,'/path');

session_start();

if ($_SESSION['name'] = "session"){

echo "设置成功";

} else {

echo "设置失败";

}

?

?php

session_start();

var_dump($_SESSION);

?

PHP的cookie问题

发错地方了!

PHP中使用cookie

1、设置Cookie

PHP用SetCookie函数来设置Cookie。必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。

SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下:

int

SetCookie(string

name,

string

value,

int

expire,

string

path,

string

domain,

int

secure);

除了name之外所有的参数都是可选的。value,path,domain三个参数可以用空字符串代换,表示没有设置;expire

secure两个参数是数值型的,可以用0表示。expire参数是一个标准的Unix时间标记,可以用time()或mktime()函数取得,以秒为单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。

当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因。

在同一个页面设置Cookie,实际是从后往前,所以如果要在插入一个新的Cookie之前删掉一个,必须先写插入的语句,再写删除的语句,否则可能会出现不希望的结果。

来看几个例子:

简单的:

SetCookie("MyCookie",

"Value

of

MyCookie");

带失效时间的:

SetCookie("WithExpire",

"Expire

in

1

hour",

time()+3600);//3600秒=1小时

什么都有的:

SetCookie("FullCookie",

"Full

cookie

value",

time()+3600,

"/forum",

".phpuser.com",

1);

这里还有一点要说明的,比如站点有几个不同的目录,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设的Cookie在另一个目录的页面里是看不到的,也就是说,Cookie是面向路径的。实际上,即使没有指定路径,WEB服务器会自动传递当前的路径给浏览器的,指定路径会强制服务器使用设置的路径。解决这个问题的办法是在调用SetCookie时加上路径和域名,域名的格式可以是“”,也可是“.phpuser.com”。

SetCookie函数里表示value的部分,在传递时会自动被encode,也就是说,如果value的值是“test

value”在传递时就变成了“test%20value”,跟URL的方法一样。当然,对于程序来说这是透明的,因为在PHP接收Cookie的值时会自动将其decode。

如果要设置同名的多个Cookie,要用数组,方法是:

SetCookie("CookieArray[]",

"Value

1");

SetCookie("CookieArray[]",

"Value

2");

SetCookie("CookieArray[0]",

"Value

1");

SetCookie("CookieArray[1]",

"Value

2");

2、接收和处理Cookie

PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单。

比如设置一个名为MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。

分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效)

echo

$MyCookie;

echo

$CookieArray[0];

echo

count($CookieArray);

echo

$HTTP_COOKIE_VARS["MyCookie"];

就这么简单。

3、删除Cookie

要删除一个已经存在的Cookie,有两个办法:

一是调用只带有name参数的SetCookie,那么名为这个name的Cookie将被从关系户机上删掉;另一个办法是设置Cookie的失效时间为time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。

要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的。

4、使用Cookie的限制

首先是必须在HTML文件的内容输出之前设置;

其次不同的浏览器对Cookie的处理不一致辞,且有时会出现错误的结果。

第三个限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。