PHP学习笔记-Cookie

转载请标明出处:

http://blog.csdn.net/hai_qing_xu_kong/article/details/51922536

本文出自:【顾林海的博客】

前言

距离写博客已经过了一两个礼拜了,这段时间比较忙,在新公司需要熟悉项目,这段时间准备在一些渠道首发,因此需要大量时间去修复BUG和添加功能。好了,继续本章的话题。

Cookie管理

什么是Cookie

Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookies文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速作出响应,如在页面中不需要输入用户的ID和密码即可直接登录网站等。

文本文件的命令格式如下:

用户名@网站地址[数字].txt

Cookie的功能

Web服务器可以应用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookie常用于以下3个方面:

  • 记录访客的某些信息。如可以利用Cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息,另外,某些网站可以使用Cookie自动记录访客上次登录的用户名。
  • 在页面之间传递变量。浏览器并不会保存当前页面上的任何变量信息,当页面被关闭时页面上的所有变量信息将随之消失。如果用户声明一个变量id=8,要把这个变量传递到另一个页面,可以把变量id以Cookie形式保存下来,然后在下一页通过读取该Cookie来获取变量的值。
  • 将所查看的Internet页存储在Cookies临时文件夹中,可以提高以后浏览的速度。

创建Cookie

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

bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])
参数 说明 举例
name Cookie的变量名 可以通过$_COOKIE[“cookiename”]调用变量名为cookiename的Cookie
value Cookie变量的值,该值保存在客户端,不能用来保存敏感数据 可以通过$_COOKIE[“values”]获取名为values的值
expire Cookie的失效时间,expire是标准的UNIX时间标记,可以用time()函数或mktime()函数获取,单位为秒 如果不设置Cookie的失效时间,那么Cookie将永远有效,除非手动将其删除
path Cookie在服务器端的有效路径 如果该参数设置为“/”,则它在整个domain内有效,如果设置为“/11”,它在domain下的/11目录及子目录内有效。默认是当前目录
domain Cookie有效的域名 如果要使Cookie在hhh.com域名下的所有子域都有效,应该设置为hhh.com
secure 指明Cookie是否仅通过安全的HTTPS,值为0或1 如果值为1,则Cookie只能在HTTPS连接上有效;如果值为默认值0,则Cookie在HTTP和HTTPS连接上均有效

读取Cookie

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
        />
    <title>PHP语言基础</title>

</head>
<body>
<?php
date_default_timezone_set("PRC");
header("Content-Type:text/html;   charset=gb2312");
if (!isset($_COOKIE["visittime"])) {
    setcookie("visittime", date("y-m-d H:i:s"));
    echo "这是第一次保存Cookie"."<br>";
} else {
    setcookie("visittime", date("y-m-d H:i:s"), time() + 60);
    echo "上次访问时间为:" . $_COOKIE["visittime"];
    echo "<br>";
}
echo "本次访问时间:" . date("y-m-d H:i:s");
?>
</body>
</html>

第一次运行结果:

这是第一次保存Cookie

本次访问时间:16-07-16 08:26:25

第二次运行结果:

上次访问时间为:16-07-16 08:26:25

本次访问时间:16-07-16 08:27:25

上述代码,先通过isset()函数检测Cookie文件是否存在,不存在通过setcookie()函数创建一个Cookie文件,如果存在设置Cookie的失效时间为60秒。

删除Cookie

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

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

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

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

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

在上面的代码中,time()函数返回以秒表示的当前时间戳,把过期时间减1秒就会得到过去的时间,从而删除Cookie。

2.在浏览器中手动删除Cookie

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

Cookie的生命周期

如果Cookie不设定时间,就表示它的生命周期为浏览器会话的期间,只要关闭IE浏览器,Cookie就会自动消失。这种Cookie被称为会话Cookie,一般不保存在硬盘上,而是保存在内存中。

如果设置了过期时间,那么浏览器会把Cookie保存到硬盘中,再次打开IE浏览器时会依然有效,直到它的有效期超时。

虽然Cookie可以长期保存在客户端浏览器中,但也不是一成不变的。因为浏览器最多允许存储300个Cookie文件,而且每个Cookie文件支持最大容量为4KB;每个域名最多支持20个Cookie,如果达到限制时,浏览器会自动地随机删除Cookies。

时间: 2024-08-05 11:18:40

PHP学习笔记-Cookie的相关文章

重温Servlet学习笔记--Cookie对象

首先要了解cookie必须得先了解http协议,,Cookie是http协议指定的,先由服务器保存cookie到浏览器,在下次浏览器请求服务器时把上次请求得到的cookie归还给服务器,cookie以键值对的形式保存在本地的缓存中. HTTP协议规定: 1个cookie最大4kb 一个服务器最多向一个浏览器保存20个cookie 一个浏览器最多保存300个cookie 注意,不同浏览器还是略有差异,不是所有浏览器都老老实实的遵守这个规定. cookie的用途举例: 服务器使用cookie来跟踪客

Web安全测试学习笔记(Cookie&amp;Session)

一,Session:含义:有始有终的一系列动作\消息1, 隐含了"面向连接" 和"保持状态"两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构"把××保存在session里" 二, http 协议本来是无状态的,所以引进了cookie和session机制来保持连接状态 cookie与session 机制之间的区别与联系:cookie机制采用的是在客户端保持状态的方法session机制采用的是在服务器端保持

JavaScript 学习笔记— —cookie

什么是 Cookie “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值.” - w3schoolcookie 是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息. 从JavaScript的角度看,cookie 就是一些字符串信息.这些信息存放在客户端的计算机中,用于客户端计算机与服务器之间传递信息.在JavaScript中可以通过 document.c

Cookie学习笔记(三)

11.4.3  删除会话变量 在使用会话时,需要创建一个方法来删除会话数据.在当前示例中,当用户注销时,这是必要的. 虽然cookie系统只需要发送另一个cookie来销毁现有的cookie,但是会话的要求更高,因为既要考虑客户上的cookie,又要考虑服务器上的数据. 要删除单独一个会话变量,可以使用unset()函数(它可以处理PHP中的任何变量): unset($_SESSION['var']); 要删除每个会话变量,可以重置整个$_SESSION数组: $_SESSION = array

[原创]java WEB学习笔记30:Cookie Demo 之显示最近浏览的记录

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Cookie学习笔记(一)

Cookie 简介 一.简介     说起来,Cookie应该是一种应用较久的技术了.早在HTML刚刚出现的时候,在每个独立的页面之间没有办法记录和 标识不同的用户.后来人们就发明了Cookie技术,当用户访问网页时,它能够在访问者的机器上创立一个文件,我们把它叫作Cookie,写一段内容进去,来标识不同的用户.如果下次用户再访问这个网页的时候,它又能够读出这个文件里面的内容,这样网页就知道上次这个用户已经访问过该网页了.      虽然现在网页的制作技术比起几年以前已经发展了许多.不过有些时候

Cookie学习笔记二:Cookie实例

今天说说刚刚学到的两个Cookie的最经典应用:自动登录和购物车设置 一:自动登录 需要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp处理登录信息:如果有Cookie,则自动登录,否则创建输入信息的对象的Cookie,下次登录可以直接登录,但是我们在这里给Cookie设置一个最大保存时间30s,即登录30s后会自动退回到登陆页面,具体代码如下: login.jsp: <%@ page language="java" con

Javaweb学习笔记5—Cookie&amp;Session

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍  今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.会话管理技术概述 1 什么是会话? 这里的会话指的是web开发中的一次通话过程,当打开浏览

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>