网站导航:首页-网页制作语言-PHP如何向客户端发送cookie

PHP如何向客户端发送cookie

  cookie 是由服务器发送到浏览器的变量,它通常是服务器嵌入到用户计算机中的小文本文件。下面将分别介绍PHP如何向设置客户端cookie以及如何读取cookie。

  设置cookie使用的是setcookie函数,它有6个参数,格式为setcookie(name,value,expire,path,domain,secure),其中各个参数的用法如下表所示。

参数名 是否必选 描述
name cookie的名称
value cookie的值
expire cookie的有效期(如省略则关闭浏览器后失效,格式为UNIX时间戳)
path cookie有效的服务器路径
domain cookie有效的域名
secure 是否只能通过HTTPS连接来传输cookie
httponly 是否只能通过HTTP协议访问,若是则无法通过脚本语言访问

  读取cookie的方法非常简单,可以直接在PHP中使用$_COOKIE["name"]来读出响应内容。

  下面将举例说明自定义函数的使用方法。

例一:只含有必要参数

<?php
if(isset($_COOKIE["testname"]))
echo "已设置cookie,testname的值为".$_COOKIE["testname"];
else
{
echo "现在没有设置对应的cookie,现在以开始设置";
setcookie("testname","testvalue");
}
?>

  运行后首先会显示没有设置对应cookie,刷新页面后显示已设置cookie。随后即使关闭页面(不关闭浏览器)在打开页面后仍然是显示已设置cookie,但关闭浏览器后在重新打开页面就会显示没事有设置对应的cookie了。

例二:带有时间参数

<?php
if(isset($_COOKIE["testname"]))
echo "已设置cookie,testname的值为".$_COOKIE["testname"];
else
{
echo "现在没有设置对应的cookie,现在以开始设置";
setcookie("testname","testvalue",time()+10);
}
?>

  运行后可以发现cookie只能保持10秒的时间,时间到后不需要重启浏览器cookie也会自行失效。

例三:带有全部参数,由于需要指定域名下才能调用cookie,您运行完全相同的代码可能无法得到同样的结果。

<?php
if(isset($_COOKIE["testname"]))
echo "已设置cookie,testname的值为".$_COOKIE["testname"];
else
{
echo "现在没有设置对应的cookie,现在以开始设置";
setcookie("testname","testvalue",time()+60,"/","test.mydomain.net",false);
}
?>

  上述只有指定的域名与地址下可以使用这个cookie值。

已经到本页底线啦,您可以:返回目录页|返回首页