php中的cookie

转载 2004年08月04日 10:19:00
PHP中的cookie
2004-05-22    builder.com   
打印自: 西交天空
地址: http://www.xjtusky.com/article/article.php/375
PHP中的cookie

用PHP来设置并读取cookie是一件极其——我们敢说吗?——简单的事情。我们并不希望大力鼓吹cookie,不过它们的确既重要又实用。它们是解决某些问题时唯一适用的工具。

要创建并修改一个 cookie,可使用PHP函数setcookie()。取决于想对cookie进行控制的程度,及谁可以读取cookie的值,setcookie()最多可有六个参数。

设置cookie最简单的方式如下:

setcookie('name', 'bret');

然后,在用户退出前,接下来使用此浏览器查看的站点中每一个页面,都会有一个值为“bret”的变量$name,并且很容易通过PHP 对其进行访问。由于其生存期是一次用户连结,此类cookie被称为session cookie,。

如果希望用户关闭其浏览器后,仍保留此cookie,则必须传递第三个参数给setcookie()函数,即设定此cookie的有效日期。由于PHP的背景完全源于Unix的思想,这个有效期限需要以从1970年1月1日起算的总秒数来代表。如果作为Unix程序员,这种算法对你而言可能是合情合理的。但如果来自Windows或Macintosh阵营,你可能只能摇头叹息,无法理解那些古怪的Unix家伙们。

不过无需害怕。PHP提供一个很好用的函数mktime()。你只要按顺序传送给mktime()你希望表示的小时,分钟,秒数,月份,日期,及年份,mktime()就会返回该日期自1970年1月1日的总秒数。因此,如果需要模拟 Y2K 问题:

<?php

$y2k = mktime(0,0,0,1,1,2000);

setcookie('name', 'bret', $y2k);

?>

现在,你的cookie将会在2000年失效。

如果需要更新cookie以让其储存新值,只需要将其原值覆盖即可。因此,即使你已经在之前的页面中刚刚发送cookie,仍可以将你的名字改为“jeff”。

<?php

$y2k = mktime(0,0,0,1,1,2000);

setcookie('name', 'jeff', $y2k);

?>

 

注意这样做并不会改变变量$name的值。在页面载入的时候,其值就已经确定。如果希望总是同时确定二者,可以编写如下代码:

<?php

$name = 'jeff';

$y2k = mktime(0,0,0,1,1,2000);

setcookie('name', $name, $y2k);

?>

setcookie()的下两个参数可以控制读取cookie的程序的域及目录路径。默认设定为仅在与送出cookie的服务器相同且在同级或以下的目录结构内的页面才可以读取其值。这是出于网络安全方面的考虑。然而,如果你有一个帐号“www.domain.com”但同时也是“other.domain.com”,且帐户允许从~/myhome目录处理页面,则应更改setcookie()如下:

<?php

setcookie('name', 'jeff', $y2k, '~/myhome', '.domain.com');

?>

我们还未使用过的setcookie()最后一个参数是设定cookie只传送给实行诸如SSL的安全连接的Web服务器。要使用此功能,将第六个值设置为1。

删除cookie非常简单,仅需简单地将cookie的名传送给setcookie(),PHP就会将其删除掉。

<?php setcookie('name'); ?>

最后还有一个关于使用cookie的重要事项。由于cookie与HTTP的特定工作方式,你必须在你输出任何文本前,传送出所有的cookie。否则PHP会给出警告,并且cookie也不会被传送。因此,这样做是正确的方法:

<?php

setcookie('name', 'jeff');

echo "Hello Everyone!";

?>

以下是错误地:

<?php

echo "Hello Everyone!";

setcookie('name', 'jeff');

?>

David Sklar是Student.Net Publishing的首席信息官。

Adam Trachtenberg是Student.Net Publishing产品副主管。

PHP中Cookie存在的作用和用法

1、使用$_COOKIE读取Cookie         使用Session只能让网站记住当前正在访问的用户,但有时网站还需要记住曾经访问过的用户,以便在用户下次访问时.提供个性化的服务。这就需要用...
  • czh0423
  • czh0423
  • 2015年06月11日 16:34
  • 2534

PHP Cookie与Session的使用与区别

Cookie与Session Cookie和session是目前使用的两种存储机制。 cookie是从一个WEB页到下一个WEB页面的数据传送方法,cookie存储在客户端。 Session是让...
  • czh0423
  • czh0423
  • 2015年06月02日 16:09
  • 2827

php 创建 Cookie 和取回 Cookie 的值

创建 Cookie 和取回 Cookie 的值 1、Cookie是临时文件的意思,保存你浏览网页的痕迹,让我们再次上同一页面的时候提高网速。还有判断你是否登录过这个网站,登陆过同一网站的话,再次登录的...
  • qq_32562501
  • qq_32562501
  • 2017年02月20日 13:42
  • 1594

js与PHP 设置cookie的相互读取

PHP与JavaScript下Cookie的交互使用  列出JS和php交互的方法 在 2012年01月31日 那天写的     已经有 3730 次阅读了 感谢 参考或原文 服务器君一共花...
  • qq1355541448
  • qq1355541448
  • 2014年10月15日 18:32
  • 11970

php中如何正确的删除cookies文件

php中关于cookie的操作有一个重要函数setcookie
  • fanyilong_v5
  • fanyilong_v5
  • 2014年10月04日 16:51
  • 1205

理解PHP当中的cookie

为什么要使用会话控制 在我们平时浏览网页的时候,访问每个web页面都需要使用“http”协议实现,而这个协议是无状态协议,也就是说没有内嵌机制来链接两个事务之间的状态,当一个人用户请求一个人页面以后,...
  • woshinannan741
  • woshinannan741
  • 2015年11月06日 21:51
  • 1344

php第一次无法获取cookie问题处理

首先编写以下简单的代码: 复制代码 代码如下:     setcookie('a','value');     print $_COOKIE['a']; 第一次访问时,报错: 报...
  • Mr_Janan
  • Mr_Janan
  • 2016年07月20日 17:00
  • 660

PHP的COOKIE原理介绍与使用

cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再次访问服务器的WEB资源时,就会带着各自的数据去,这样,WEB资源处理的就是用户各自的数据了...
  • L1837435964
  • L1837435964
  • 2016年10月18日 16:11
  • 207

php和cookie实现购物车

不习惯用cookie,之前做购物车都是让用户登录之后才购买,这样我就能把购物车里的商品存入到一个数据表里,等到下订单时再把它们转移到另一个订单的表里。但是客户的需求是无限的,想要同时可以不注册就能购买...
  • skfzc
  • skfzc
  • 2015年12月11日 15:17
  • 1892

PHP 如何操作跨域的COOKIE,不同服务器上

cookies 定义在 RFC2109 标准。cookies 的大部分操作,由客户端也就是浏览器实现。 cookies 每一个 cookie 代表着一个 key-value 键值对,以及作用范围,和...
  • u013091013
  • u013091013
  • 2016年12月29日 15:21
  • 2138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php中的cookie
举报原因:
原因补充:

(最多只允许输入30个字)