php从入门到精通 php从入门到精通PHP是什么php环境搭建php echo/print 打印输出PHP date()函数:日期和时间PHP语法PHP 变量PHP 常用数据类型PHP常量PHP运算符PHP if语句PHP Switch语句PHP for和foreach 循环PHP while 循环PHP退出循环PHP 函数PHP 类与对象PHP命名空间PHP超全局变量PHP 表单 PHP表单提交PHP 表单验证PHP 日常操作 PHP多维数组PHP Include和require用法PHP 打开/读取/输出/关闭文件PHP 创建/写入文件PHP 上传文件PHP 复制/移动/删除文件PHP判断目录文件是否存在PHP获取文件属性和权限PHP cookiePHP SessionPHP Mysql数据库 创建/选择/删除Mysql数据库创建/删除Mysql数据表修改/重命名Mysql数据表Mysql数据管理PHP 连接MySQL数据库PHP 创建MySQL数据库PHP创建Mysql数据表PHP插入Mysql数据PHP查询Mysql数据PHP MySQL Order By排序PHP MySQL UPDATE更新数据PHP MySQL Delete删除数据

PHP cookie

储存在用户本地终端上的数据

cookie是什么?

Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。

PHP创建cookie

setcookie() 函数用于设置 cookie,setcookie() 函数必须位于 <html> 标签之前。

语法:

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

setcookie ("名称","值", "过期时间", "有效路径", "有效域名","安全设置","协议访问");

cookie参数
参数名描述
nameCookie 名称。
valueCookie 值。 这个值储存于用户的电脑里,请勿储存敏感信息。 比如 name 是 'cookiename', 可通过 $_COOKIE['cookiename'] 获取它的值。
expireCookie 的过期时间。 这是个 Unix 时间戳,即 Unix 纪元以来(格林威治时间 1970 年 1 月 1 日 00:00:00)的秒数。 也就是说,基本可以用 time() 函数的结果加上希望过期的秒数。 或者也可以用 mktime()。 time()+60*60*24*30 就是设置 Cookie 30 天后过期。 如果设置成零,或者忽略参数, Cookie 会在会话结束时过期(也就是关掉浏览器时)。
pathCookie 有效的服务器路径。 设置成 '/' 时,Cookie 对整个域名 domain 有效。 如果设置成 '/foo/', Cookie 仅仅对 domain 中 /foo/ 目录及其子目录有效(比如 /foo/bar/)。 默认值是设置 Cookie 时的当前目录。
domainCookie 的有效域名/子域名。 设置成子域名(例如 'www.example.com'),会使 Cookie 对这个子域名和它的三级域名有效(例如 w2.www.example.com)。 要让 Cookie 对整个域名有效(包括它的全部子域名),只要设置成域名就可以了(这个例子里是 'example.com')。
secure设置这个 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端。 设置成 TRUE 时,只有安全连接存在时才会设置 Cookie。 如果是在服务器端处理这个需求,程序员需要仅仅在安全连接上发送此类 Cookie (通过 $_SERVER["HTTPS"] 判断)。
httponly设置成 TRUE,Cookie 仅可通过 HTTP 协议访问。 这意思就是 Cookie 无法通过类似 JavaScript 这样的脚本语言访问。 要有效减少 XSS 攻击时的身份窃取行为,可建议用此设置(虽然不是所有浏览器都支持),不过这个说法经常有争议。 PHP 5.2.0 中添加。 TRUE 或 FALSE

案例 如何从一个文件页面传值到别一个页面

现在使用三个文件好讲解cookie的用法分别是setcookie.php、echo.php、delete.php

setcookie.php文件创建cookie

<?php
        $expire=time()+60*60*24*30*12;
        setcookie("xudaima", "炫代码", time()+3600);//3600秒等于一小时,过期时间1小时
        setcookie("user", "zhansan", $expire);//过期时间一年(60 秒 * 60 分 * 24 小时 * 30 天* 12 月)
?>

先运行一下setcookie.php文件,页面是空白的,但是cookie保存下来了。

echo.php文件取cookie名称和数值

<?php
		print_r($_COOKIE);//打印全部cookie
		echo $_COOKIE["xudaima"]; //打印单个xudaima的cookie
         
?>

结果:

Array ( [xudaima] => 炫代码 [user] => zhansan ) 

炫代码

然后直接运行echo.php文件,就会有值打印出来了,在cookie没有过期或者删除的情况下cookie会一直存在

delete.php删除cookie

<?php
		setcookie("user", "zhansan", time()-3600);//过去时间一小时
?>

只要把过期时间设置为过去的时间(以前的时间),则是删除cookie,我们运行delete.php后再去运行echo.php

结果:

Array ( [xudaima] => 炫代码 ) 

炫代码

222.gif

cookie限制

各浏览器对Cookie有一定的限制,在使用时需要格外注意。应该尽量保证cookie个数小于20个,总大小 小于4KB。


IE6.0IE7.0/8.0/9.0+OperaFFSafariChrome
cookie个数每个域为20个每个域为50个每个域为30个  每个域为50个   没有个数限制 每个域为53个
cookie大小4095个字节4095个字节4096个字节4097个字节4097个字节4097个字节