PHP 中的cookie的使用
来源:互联网 发布:阿里云免费虚拟机 编辑:程序博客网 时间:2024/05/29 17:45
要创建并修改一个 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 问题:
现在,你的cookie将会在2000年失效。
如果需要更新cookie以让其储存新值,只需要将其原值覆盖即可。因此,即使你已经在之前的页面中刚刚发送cookie,仍可以将你的名字改为“jeff”。
<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(name, jeff, $y2k);
?>
注意这样做并不会改变变量$name的值。在页面载入的时候,其值就已经确定。如果希望总是同时确定二者,可以编写如下代码:
<?php
setcookie(name, jeff, $y2k, ~/myhome, .domain.com);
?>
设置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);
?>
$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);
?>
$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!";
?>
setcookie(name, jeff);
echo "hello everyone!";
?>
以下是错误地:
<?php
echo "hello everyone!";
setcookie(name, jeff);
?>
- PHP 中的cookie的使用
- PHP中的COOKIE的使用
- PHP cookie的使用
- php中cookie的使用
- PHP中cookie的使用
- php cookie session的使用
- php中cookie的使用
- iOS中的cookie的使用
- php中的cookie
- PHP中的cookie
- php中的cookie用法
- php中的cookie用法
- php中的cookie用法
- php中的cookie用法
- php中的cookie用法
- php中的cookie用法
- php中的Session、Cookie
- php中cookie数组创建以及使用,cookie的删除
- 托管代码中的指针
- (15)'c++:COMPLETE REFERENCE' 第一部分 第二章(表达式) 第七、八节
- 微软推测试版VoIP软件 Office获语音通信能力
- Java编程语言和Java指南中关于Java的参数传递的解释
- logic:iterate标签当遍历的collection为Map时的使用
- PHP 中的cookie的使用
- PV和Alexa都不可靠 网络广告在瞎投
- ORALCE的执行计划稳定性(zt)
- 算法.数学.初级.求最大公约数--辗转相除法,powerbuilder powerscript实现
- XML-RPC规范
- XML的简单读取与写入
- I have a dream
- Red Hat将建立网络软件商店推销Linux产品
- XML指南—XML命名空间