搞个多语言版本的,,感觉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’);
?>
分享到:
相关推荐
下面我们将详细探讨`setcookie()`函数的各个参数及其用法。 1. **name**(必需):这个参数用于指定cookie的名称,它是区分大小写的。例如,`setcookie("username", "John")`将创建一个名为"username"的cookie。 2...
PHP中的setcookie函数用于定义一个cookie,并将其作为HTTP头的一部分发送给用户。如果在发送任何实际的HTTP头之前有任何输出,setcookie将失败并返回FALSE,因为HTTP头必须在任何实际内容之前发送。因此,确保...
解决办法如下: 方法一: 在PHP里Cookie的使用是有一些限制的。 1、使用setcookie必须在<html>标签之前 2、使用setcookie之前,不可以使用echo输入内容 3、直到网页被加载完后,cookie才会出现 4、setcookie...
php setcookie(“cookie“, “cookieone”,time()+36000,”/”); setcookie(“cookie“, “cookietwo”,time()+36000,”/”); setcookie(“cookie“, “cookiethree”, time()+36000,”/”,”.65.la”);
在PHP中,setcookie函数用于在用户的浏览器中设置一个cookie。Cookie是一种在服务器端创建并通过HTTP响应头发送到客户端的小文件,之后浏览器会在访问同一服务器时将这个文件发送回去。这通常用于跟踪用户会话或保存...
超实用的cookie设置案例,说明,编辑cookie,删除cookie方法
2. **phpinfo页面**:`phpinfo()`函数是PHP内置的一个实用工具,用于显示当前PHP环境的详细信息,包括版本、配置、模块等。这对于诊断问题、调试环境或确保正确安装了必要的扩展非常有用。 3. **Calendar页面**:...
在PHP学习过程中,掌握详细的代码实例至关重要,因为实践是检验真理的唯一标准。PHP是一种流行的开源服务器端脚本语言,广泛应用于Web开发,能够嵌入到HTML中,为动态网站提供强大的支持。以下将深入探讨PHP学习中的...
本章详细介绍了如何设置、获取和销毁COOKIE和SESSION,以及相关函数,如setcookie、$_SESSION等,为实现会话跟踪和个性化功能打下基础。 十、数据库操作:第10章 数据库的选择、创建及.ppt PHP常与数据库结合使用,...
`var_dump()` 和 `print_r()` 用于查看变量的详细信息。 8. 文件操作: PHP可以读写文件,如 `file_get_contents()` 读取文件,`file_put_contents()` 写入文件。`fopen()`, `fread()`, `fwrite()`, `fclose()` 等...
PHP手册中的函数部分详细列出了PHP提供的数千个内置函数,如字符串处理函数(str_replace、strpos)、数组操作函数(array_push、array_pop)、数学函数(abs、pow)、日期与时间函数(date、strtotime)等。...
手册提供了关于session_start、setcookie等函数的详细说明。 9. **网络编程**:PHP可以处理HTTP协议,发送HTTP请求,甚至实现服务器端的Web服务。手册中涵盖了curl库和其他相关网络功能。 10. **安全**:安全是...
通过深入学习以上知识点,结合PHP字典提供的详细信息,无论是初学者还是有一定经验的开发者,都能更好地掌握PHP,从而高效地进行Web开发。实践中不断探索和积累,PHP的魅力将会在您的手中绽放。
**详细解析:** - **变量拼接陷阱:** 在PHP中,字符串与变量拼接时,需要注意变量名是否被正确解析。例如: ```php $Micropoor = 'Bug'; echo "This is The $Micropoors"; // 无效;字母s会被当成有效的变量名...
`setcookie()` 函数创建 cookie,`$_COOKIE` 超全局数组访问其值。 7. 安全性考虑 - SQL 注入防护:使用参数化查询或预处理语句,避免恶意 SQL 代码注入。 - 输入验证:对用户提交的数据进行验证,防止非法或有害...