快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

PHP中的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.ini中文版
下一教程: PHP教程.应用实例6

您可以阅读与"PHP中的cookie"相关的教程:
· PHP中的DOM XML函数
· PHP中的常量
· php中的时间处理
· 转帖:PHP4(windows版本)中的COM函数
· PHP4(windows版本)中的COM函数
    微笑服务 优质保证 索取样品