• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> PHP 开发 >> PHP入门 >> 详细内容
 

推荐文章

  • 谈谈新手如何学习PHP
  • PHP脚本的8个技巧
 
 

热点文章

  • PHP中的cookie
  • 谈谈新手如何学习PHP
  • PHP脚本的8个技巧
  • 二元分词函数的分析
  • PHP5学习笔记 -- Classes and Objects in PHP5
  • ascii码及扩展码
  • php调用MSSQL存储过程
  • php中Cookie的设置与使用
  • php新手入门(经验谈)
  • PHP编辑器
  • fgets函数
  • 如何用PHP做到即时简繁切换
 
 

相关文章

  • 教你巧用PHP+MySQL搭建一个聊天室
  • Java在Web开发语言上败给了PHP
  • PHP中利用GD输出汉字实例
  • 基于PHP的AJAX技术实现文件异步上传
  • asp,php 和 jsp 比较 之我见
  • Perl、PHP、ASP、JSP技术比较
  • 我为什么要从IIS的ASP迁移到APACHE的PHP?
  • 从IIS的ASP迁移到APACHE的PHP的方法
  • PHP运行在Windows Server 2008下:性能提高130%
  • Windows Server 2008 IIS 7.0下配置php,MySQL,Zend,ph..
  • DIV+CSS+PHP巨献——网页内容先竖排再横排
  • PHP开源AJAX框架
 
 

百度搜索

 
 

PHP中的cookie

  • 阅览次数:
  • 文章来源: CP整理
  • 原文作者: David Sklar
  • 整理日期: 2007-01-26
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

用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产品副主管。


上一篇:ASP抽取数据的执行效率
下一篇:比AcdSee功能还强大的图片处理、编辑软件,推荐下载!
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号