php 设置cookie路径例子总结
先看phpcms中的一个函数
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4311')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4311>phpcms/libs/classes/param.class.php
/**
* Set Cookie
* @param string $var
* @param string $value
* @param int $time
* @param string $path
*/
public static function set_cookie($var, $value = '', $time = 0, $path = '') {
$time = $time > 0 ? $time : ($value == '' ? SYS_TIME - 3600 : 0);
$s = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0;
$var = pc_base::load_config('system','cookie_pre').$var;
$path = $path == '' ? pc_base::load_config('system','cookie_path') : $path;
$_COOKIE[$var] = $value;
if (is_array($value)) {
foreach($value as $k=>$v) {
setcookie($var.'['.$k.']', sys_auth($v, 'ENCODE'), $time, $path, pc_base::load_config('system','cookie_domain'), $s);
}
} else {
setcookie($var, sys_auth($value, 'ENCODE'), $time, $path, pc_base::load_config('system','cookie_domain'), $s);
}
}
param::set_cookie('auth', '',time()-1,'/');
这个函数与cookie没什么区别我们先不介绍它,可能很多朋友懂,下面我们再看
setcookie函数的第四个参数为cookie路径,关于路径的设置,本文做了一些尝试,下面是两个测试页(直接用url表示路径和文件目录了):
http://localhost/test/cookie/father.php
http://localhost/test/cookie/child/child.php
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1348')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1348>
<?php
//location: locahost/test/cookie/father.php
//setcookie("TestCookie", $value, time() 3600, "/~rasmus/", ".example.com", 1);
setcookie("father_set_1_/","@@@@",time() 24*3600,"/");
setcookie("father_set_2_/child","@@@@",time() 24*3600,"/child/");
setcookie("father_set_3_test/cookie/child","@@@@",time() 24*3600,"/test/cookie/child/");
print_r($_COOKIE);
?>
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6593')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6593>
<?php
//location: localhost/test/cookie/child/child.php
//setcookie("TestCookie", $value, time() 3600, "/~rasmus/", ".example.com", 1);
setcookie("child_set_0","@@@@",time() 24*3600);
setcookie("child_set_1_/","@@@@",time() 24*3600,"/");
setcookie("child_set_2_/child","@@@@",time() 24*3600,"/child");
setcookie("child_set_3_/test/cookie/child/","@@@@",time() 24*3600,"/test/cookie/child/");
print_r($_COOKIE);
?>
分别按如下顺序访问页面father.php—>child.php—>father.php—>child.php,使用firebug查看,分别有如下结果:
</em> 图中可以看出,本次请求服务端做出响应,打印了$_COOKIE数组,但数组为空。设置了三个cookie值,分别是:"father_set_1_/"、"father_set_2_/child"、"father_set_3_test/cookie/child",它们对应的路径为"/"、"/child"、"/test/cookie/child",其中"/"指的是站点根目录。
</em> 访问child.php能看到请求中发送了两个cookie分别为"father_set_1_/"、"father_set_3_test/cookie/child",接收到四个cookie分别是"child_set_0"、"child_set_1_/"、"child_set_2_/child"、"child_set_3_/test/cookie/child/"。
</em> 第二次访问father.php打印出了二个值,也就是本次请求发送了两个值,也就是意味着father.php能访问两个值它们分别是"father_set_1_/"、"child_set_1_/"对应的路径都是"/"。
好了现在不知道你对cooke路径设置懂了没有其它就是我们要使用那个就设置那个路径了,如果是多域名就直接设置主域名就可以了,如果是目录指定目录就行了,如果是单文件指定单文件路径就可以了哦。
您可能感兴趣的文章:
php 设置cookie路径例子总结
深入分析PHP 删除cookie教程
PHP中Cookie设置、使用、删除Cookie方法
php cookie操作详解(设置、使用、删除)
php5中Cookie与Session用法
php cookie详细举例说明
php cookie setcookie使用实例
PHP设置setcookie的方法实例
PHP中会话管理Cookie和Session的例子
servlet与jsp基础教程(9)-处理Cookie