热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpsetcookie(name,value,expires,path,domain,secure)参数详解_php技巧

本篇文章是对phpsetcookie(name,value,expires,path,domain,secure)参数进行了详细的分析介绍,需要的朋友参考下
setCOOKIE() 定义一个和其余的 HTTP 标头一起发送的 COOKIE。和其它标头一样,COOKIE 必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括 和 标签以及任何空格。如果在调用 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

01

例子 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 的值:

代码如下:


// 输出单独的 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() 中使用数组的例子

代码如下:


// 设定 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
\n";
}
}
?>


上例将输出:
three : COOKIEthree
two : COOKIEtwo
one : COOKIEone

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


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 大连微软技术社区举办《.net core始于足下》活动,获得微软赛百味和易迪斯的赞助
    九月十五日,大连微软技术社区举办了《.net core始于足下》活动,共有51人报名参加,实际到场人数为43人,还有一位专程从北京赶来的同学。活动得到了微软赛百味和易迪斯的赞助,场地也由易迪斯提供。活动中大家积极交流,取得了非常成功的效果。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了Svn和Maven的使用说明,包括版本控制和构建工具的功能和优势。同时提供了一个相关链接,链接中详细介绍了SvnMaven的使用方法和注意事项。通过学习和使用SvnMaven,开发人员可以更好地进行代码管理、软件开发和协作开发,提高项目管理的效率和质量。 ... [详细]
author-avatar
火影白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有