|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话: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产物副主管。
看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢? |
|