php setcookie(name, value, expires, path, domain, secure) 参数详解


Posted in PHP onJune 28, 2013

setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie。和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括 <html> 和 <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()+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

例子 1. setcookie() 发送例子
$value = 'something from somewhere';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value,time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1); 

注意 cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量。如果不想这样并且在使用 PHP 5 的话,可以用 setrawcookie() 来代替。下面这个简单的例子可以得到刚才所设定的 cookie 的值:
<?php
// 输出单独的 cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
// 另一个调试的方法就是输出所有的 cookie
print_r($_COOKIE);
?>

要删除 cookie 需要确保它的失效期是在过去,才能触发浏览器的删除机制。下面的例子说明了如何删除刚才设置的 cookie:
例子 2. setcookie() 删除例子
// 将过期时间设为一小时前
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1); 

也可以通过在 cookie 名称中使用数组符号来设定数组 cookie,可以设定多个 cookie 作为数组单元,在脚本提取 cookie 时所有的值都放在一个数组种:
例子 3. setcookie() 中使用数组的例子
<?php
// 设定 cookie
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// 刷新页面后,显示出来
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
    }
}
?>

上例将输出:
three : cookiethree
two : cookietwo
one : cookieone

总结:cookie的基本使用不难,这篇文章记录的重点主要是掌握path的路径设置和domain的域名设置。

PHP 相关文章推荐
三个类概括PHP的五种设计模式
Sep 05 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
php curl post 时出现的问题解决
Jan 30 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 #PHP
使用PHP实现Mysql读写分离
Jun 28 #PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 #PHP
浅析memcache启动以及telnet命令详解
Jun 28 #PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 #PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 #PHP
浅析php变量修饰符static的使用
Jun 28 #PHP
You might like
php简单静态页生成过程
2008/03/27 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
JavaScript类的写法
2016/09/17 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
Python基本语法经典教程
2016/03/11 Python
python调用其他文件函数或类的示例
2019/07/16 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
美国玩具公司:U.S.Toy
2018/05/19 全球购物
个人向公司借款协议书
2014/10/09 职场文书
2015年售票员工作总结
2015/04/29 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
Nginx配置Https安全认证的实现
2021/05/26 Servers
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL