搞个多语言版本的,,感觉COOKIE非常不稳定,,时而可以,时而不可以,网上搜了下,,虽然这篇文章没有得到我想要的答案,不过感觉解释的蛮清楚的,顺手摘下来了:)
cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 “name”,会自动创建名为 $user 的变量,包含 cookie 的值。
必须在任何其他输出发送前对 cookie 进行赋值。
如果成功,则该函数返回 true,否则返回 false
在PHP中要创件cookie就需要用setcookie函数,setcookie()最多可有六个参数
setcookie函数是向客户端发送一个 HTTP cookie.
语法setcookie(name,value,expire,path,domain,secure) 参数 描述 name 必需。规定 cookie 的名称。 value 必需。规定 cookie 的值。 expire 可选。规定 cookie 的有效期。 path 可选。规定 cookie 的服务器路径。 domain 可选。规定 cookie 的域名。 secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。 提示和注释
注释:可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 “user” 的 cookie 的值。
注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码。接收时会进行 URL 解码。如果你不需要这样,可以使用setrawcookie()代替.
如果希望用户关闭其浏览器后,仍保留此cookie,则必须传递第三个参数给setcookie()函数,即设定此cookie的有效日期。由于 PHP的背 景完全源于Unix的思想,这个有效期限需要以从1970年1月1日起算的总秒数来代表。如果作为Unix程序员,这种算法对你而言可能是合情合理的。但 如果来自或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’);
?>
分享到:
相关推荐
php setcookie函数的参数说明 用法: setcookie(name,value,expire,path,domain,secure) 参数 描述 name 必需。规定 cookie 的名称。 value 必需。规定 cookie 的值。 expire 可选。规定 cookie 的有效期。 path 可...
使用setcookie()函数时总是报以下错误: Warning: Cannot modify header information – headers already sent by…. 解决办法如下: 方法一: 在PHP里Cookie的使用是有一些限制的。 1、使用setcookie必须在<...
本篇文章是对php setcookie(name, value, expires, path, domain, secure) 参数进行了详细的分析介绍,需要的朋友参考下
reporting = E_ALL的情况下,输出内容之后再setcookie会弹出以下提示: 复制代码 代码如下: Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\b.php:2
setcookie函数指定domain参数后,在IE下的表现和在chrome、firefox中的表现不同,这不是php setcookie函数的问题,这是IE的问题。
超实用的cookie设置案例,说明,编辑cookie,删除cookie方法
PHP作为当今流行的脚本语言之一,具有编写简便,执行速度快,扩充性好等...输出控制函数不对使用 header() 或 setcookie() 发送的文件头信息产生影响,只对那些类似于 echo()、print () 和 PHP 代码的数据块有作用。
php开发客服系统。真正的实时聊天,使用持久连接+轮询+反向ajax实现 用户端(可直接给客户发送消息) 客服端(点击用户名.即可给该用户回复消息) 讲两种实现方式: 一:iframe + 服务器推技术comet(反向ajax,即服务器向...
php setcookie(“username”,”bu”,time()+3600); echo “aaaaa”;?>运行有警告Warning: Cannot modify header information – headers already sent by 下面是别人建议 方法一:在PHP里Cookie的使用是有...
<?php // session start session_start(); // 开始一个会话,如果要使用session程序最前面一定要加上这句 $_SESSION['user_id'] = ‘123′;//给一个session 变量赋值,如果该变量不存在即创建 echo $_SESSION['user...
在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有...
Setcookie(string name, string value, int expire,string path, string domain, int secure); (1)、必须在HTML文件的内容输出之前设置; (2)、不同的浏览器对Cookie的处理不一致,且有时会出现错误的结果。 (3)、...
php setcookie(“username”); //删除cookie ?> 您可能感兴趣的文章:php 删除cookie方法详解在PHP中设置、使用、删除Cookie的解决方法php cookies中删除的一般赋值方法php创建、获取cookie及基础要点分析php...
本文实例讲述了PHP与... setcookie('php_cn_ck','php_中文_cookie'); setcookie('php_en_ck','php_english_cookie'); ?> [removed][removed] [removed] Cookies.set('js_cn_ck','js_中文_cookie',5000); Co
PHP在http协议的头信息里发送cookie, 因此setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对header() 函数的限制类似。1.1 设置cookie: 可以用setcookie() 或setrawcookie() 函数来设置cookie。也可以...