1、 Cookie 介绍

在 PHP 中通过 setcookie()函数创建 Cookie。语法格式如下:

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( )+86400*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子域内有效。

secure

指明 cookie 是否仅通过安全的 HTTPS 连 接传送。当设成 TRUE 时,cookie 仅在安 全的连接中被设置。默认值为 FALSE。

0 或 1

httponly

设为 true 后,只能通过 http 访问, javascript 无法访问;防止 xss 读取 cookie;php5.2 以上版本已支持 HttpOnly 参数的设置,同样也支持全局的 HttpOnly 的 设置,在 php.ini 中, session.cookie_httponly=ture 来开启全局 的 Cookie 的 HttpOnly 属性

setcookie(“abc”, “test”,NULL, NULL, NULL, NULL, TRUE)

2、创建cookie

创建名称为 name 的 cookie,值为 root

└─# vim cookie1.php

插入如下代码:

<?php

setcookie('name','root'); //设置名称为 name 的 cookie,值为 root

setcookie('cwillchris','will',time()+3600); //设置名称为 cwillchris 的 cookie 的值为will,有效时间为 3600 秒

echo date('Y-m-d H:i:s'); //输出当前时间

?>

浏览器访问http://192.168.98.30/cookie1.php,按F12,选择Storage,就可以看到cookie信息

注意:从图中可以看到 domain 没有设置默认为 当前站点域名,path 默认为 / ,也就是这个 cookie 在整个站点内是有效的,第一个 cookie 没有设置过期时间 expire,默认为 Session ,说明当 浏览器关掉后,会失效。第二个 cookie 过期时间为访问页面时开始 1 个小时候失效。

3、读取cookie

在 PHP 中可以直接通过超级全局数组$_COOKIE[]来读取浏览器端的 Cookie 值。

读取名为name的cookie

创建文件cookie2.php

─# vim cookie2.php

插入如下代码

<?php

echo $_COOKIE['name']; //读取名称为 name 的 cookie 的值并输出到当前页面

echo "<br/>"; //输出换行,为了显示更明显些,将两个 cookie 的值用 换行间隔

echo $_COOKIE['cwillchris']; //读取名称为 xuegod 的 cookie 的值并输出到当前页面

?>

浏览器访问http://192.168.98.30/cookie2.php, 显示出例 1 中创建的两个 cookie 的值

关闭浏览器,重新打开访问这个链接, 此时只显示名称为 cwillchris的 cookie 的值,因为第一个 cookie 没有设置过期时间,关闭浏览器 后会失效。而第二个 cookie 设置的过期时间为 1 个小时。

4、删除cookie

当 Cookie 被创建后,如果没有设置它的失效时间,其 Cookie 文件会在关闭浏览器时被自动删除。 如果要在关闭浏览器之前删除 Cookie 文件,方法有两种:一种是使用 setcookie()函数删除,另一种是 在浏览器中手动删除 Cookie。下面分别进行介绍

(1) 使用 setcookie()函数删除 Cookie

删除 Cookie 和创建 Cookie 的方式基本类似,删除 Cookie 也使用 setcookie()函数。删除 Cookie 只需要将 setcookie()函数中的第二个参数设置为空值,将第 3 个参数 Cookie 的过期时间设置 为小于系统的当前时间即可。

例如: 将 Cookie 的过期时间设置为当前时间减 1 秒,代码如下

setcookie("name", "", time()-1);

(2)在浏览器中手动删除 Cookie 在使用 Cookie 时,Cookie 自动生成一个文本文件存储在 IE 浏览器的 Cookies 临时文件夹中。在 浏览器中删除 Cookie 文件是非常便捷的方法

实战:删除还没有失效的cookie

浏览器访问http://192.168.98.30/cookie1.php,得到两个cookie

然后浏览器访问浏览器访问http://192.168.98.30/cookie2.php,可以看到两个cookie的值

(1) 使用 setcookie()函数删除 Cookie

创建文件 delcookie.php

└─# vim delcookie.php

插入如下代码

<?php

setcookie('cwillchris',null,time()-1); //删除名为cwillchris的值

?>

浏览器访问浏览器访问http://192.168.98.30/delcookie.php

然后再次刷新 192.168.98.30/cookie2.php

可见名称为 cwillchris,值为 xueshen 的 cookie 不显示了,已经被删除了

(2) 在浏览器中手动删除 Cookie

浏览器访问http://192.168.98.30/cookie1.php,重新得到两个cookie

按F12,点击Storage,右击选中要删除的cookie,选择Delete ,就可以了

浏览器访问http://192.168.98.30/cookie2.php, 值为 cwillchris 的 cookie 不显示了,已经被删除

PHP 读写 COOKIE相关推荐

  1. Android如何使用读写cookie的方法

    http://www.cnblogs.com/cosiray/archive/2012/06/25/2562117.html 可以使用SharedPreferences或者SQLite来保存用户信息 ...

  2. Java中如何读写cookie (二)

    Java中删除cookie Cookie[]   cookies=request.getCookies();        //cookies不为空,则清除        if(cookies!=nu ...

  3. cookie java 写入_JAVA中如何读写COOKIE

    Java中删除cookie Cookie[] cookies=request.getCookies();//cookies不为空,则清除 if(cookies!=null) { String valu ...

  4. Jsp和Javascript读写cookie,cookie的path设置,jsp解码cookie值

    cookie的基础知识就不介绍了,自己去百度. 一.jsp读写cookie jsp写cookie的代码如下: Cookie cookie1 = new Cookie("historyCity ...

  5. JavaScript读写Cookie

    Cookie作用 Cookie是一些name=value对数据,这些数据可以由浏览器写入用户的硬盘,也可以由浏览器从用户的硬盘读取.Cookie用来持久化记录用户的某些信息,如用户名和用户的喜好等等. ...

  6. ASP.NET_读写Cookie

      Cookie (HttpCookie的实例)提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问 ...

  7. js来读写cookie操作

    因为之前公司的项目前后端是在一起的,因为要用vue来重构之前的项目.所以token签名要作为一个参数传递到后台.所以就遇到两个问题,1 token的保存和获取的问题. 2 token 判断.判断用户是 ...

  8. jquery读写cookie

    jquery cookie需要脚本文件如下: jQuery.cookie = function(name, value, options) { if (typeof value != 'undefin ...

  9. 【JS】跨域问题读写cookie的解决办法

    场景描述: 跨域Cookie共享:访问A站点时已经登录从而保存姓名.头像等基本信息,这时访问该公司的B站点时就自然而然的能显示出这些基本信息,也就是实现信息共享(在银联体系中A银行办理的卡也能在B银行 ...

  10. 跨域读写Cookie

    原文链接 Cookie作用域 Cookie 在二级域名下是可以共享的,如www.a.com 和m.a.com 他们的Cookie 是可以共享的,这也是很多单点登录利用Cookie实现的原理,但是很多站 ...

最新文章

  1. 从冬奥会开幕式谈起,AI的艺术造诣如何?
  2. C++ STL之map常用指令
  3. Linux脚本中$#、$0、$1、$@、$*、$$、$?
  4. HDU - 4388 Stone Game II(博弈+思维)
  5. DbEntry在Vs2012里的配置
  6. MySQL(介绍,安装,密码操作,权限表)
  7. 目标检测发展路程(一)——Two stage
  8. 分享一下把pdftk的合并pdf功能添加到TC(Totalcommander)
  9. mysql in 子查询 效率慢 优化(转)
  10. ★★停止动画和停止所有动画$(selector).stop() 详解
  11. Java计划任务:ScheduledThreadPoolExecutor
  12. html5制作前端优势,HTML5前端开发原来有这么多优势!
  13. matlab 相位谱是直线,matlab幅度谱和相位谱
  14. oracle 落落是谁,落落是老虎妖精吗?落落的父母是什么身份?
  15. YC出品的创业第一课:How to start a startup
  16. 第7章第27节:三图排版:三张图片交错对齐排列 [PowerPoint精美幻灯片实战教程]
  17. Zookeeper:Zookeeper的主从选举机制
  18. 这个 Spring 循环依赖的坑,90% 以上的人都不知道
  19. 知乎 mac apfs_APFS,Mac OS Extended(HFS +)和ExFAT之间有什么区别?
  20. TCL雷鸟电视卸载内置应用

热门文章

  1. Vue前端框架选型论证,字节跳动高级java开发面试
  2. 状态模式,懂你的另一半
  3. 必应壁纸php,自动下载每日必应壁纸到指定文件夹php源码
  4. vs项目筛选器显示错乱、只显示部分文件
  5. linux(三剑客之sed) sed字符串替换命令详解
  6. 学习日志12:DoS技术及工具总结
  7. 防火墙 | DDos攻击防范技术
  8. Mybatis 报错Mapper method ‘xxx‘ has an unsupported return type
  9. PID到底是个啥?来给你讲个故事
  10. Excel 填充间格空白单元格与最上临近非空单元格值相同