PHP Cookie


cookie 常用于识别用户。


Cookie 是什么?

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。


如何创建 Cookie?

setcookie() 函数用于设置 cookie。

注释:setcookie() 函数必须位于 <html> 标签之前。

语法

setcookie(name, value, expire, path, domain);

实例 1

在下面的例子中,我们将创建名为 "user" 的 cookie,并为它赋值 "runoob"。我们也规定了此 cookie 在一小时后过期:

<?php
setcookie("user", "runoob", time()+3600);
?> <html>
.....

注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码。(为防止 URL 编码,请使用 setrawcookie() 取而代之。)

实例 2

您还可以通过另一种方式设置 cookie 的过期时间。这也许比使用秒表示的方式简单。

<?php
$expire=time()+60*60*24*30;
setcookie("user", "runoob", $expire);
?> <html>
.....

在上面的实例中,过期时间被设置为一个月(60 秒 * 60 分 * 24 小时 * 30 天)。


如何取回 Cookie 的值?

PHP 的 $_COOKIE 变量用于取回 cookie 的值。

在下面的实例中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:

<?php
// 输出 cookie 值
echo $_COOKIE["user"]; // 查看所有 cookie
print_r($_COOKIE);
?>

在下面的实例中,我们使用 isset() 函数来确认是否已设置了 cookie:

<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body> <?php
if (isset($_COOKIE["user"]))
    echo "欢迎 " . $_COOKIE["user"] . "!<br>";
else
    echo "普通访客!<br>";
?> </body>
</html>

如何删除 Cookie?

当删除 cookie 时,您应当使过期日期变更为过去的时间点。

删除的实例:

<?php
// 设置 cookie 过期时间为过去 1 小时
setcookie("user", "", time()-3600);
?>

如果浏览器不支持 Cookie 该怎么办?

如果您的应用程序需要与不支持 cookie 的浏览器打交道,那么您不得不使用其他的办法在您的应用程序中的页面之间传递信息。一种方式是通过表单传递数据(有关表单和用户输入的内容,在本教程的前面章节中我们已经介绍过了)。

下面的表单在用户单点击 "Submit" 按钮时,向 "welcome.php" 提交了用户输入:

<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body> <form action="welcome.php" method="post">
名字: <input type="text" name="name">
年龄: <input type="text" name="age">
<input type="submit">
</form> </body>
</html>

取回 "welcome.php" 文件中的值,如下所示:

<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body> 欢迎 <?php echo $_POST["name"]; ?>.<br>
你 <?php echo $_POST["age"]; ?> 岁了。 </body>
</html>

最新文章

  1. UI第七节——UISlider详解
  2. SwipeRefreshLayout下拉刷新简单用例
  3. 前端之CSS(二)
  4. 如何整治那些敢偷用你Wi-Fi的人
  5. svn: E175002: can not read HTTP status line
  6. Xcode磁盘空间大清理(转)
  7. HttpClient(4.3.5) - 简单示例
  8. Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)
  9. boost库使用:仿SGI-STL实现的一个树节点allocator
  10. thinkPHP的常用配置项
  11. jquery ajax协调SpringMVCD实现局部刷新IV
  12. ASP.NET 平台下的MVC框架
  13. oracle 查看表的索引信息
  14. Android udp json+数组 ---&gt;bytes发送数据
  15. html5-微格式-时间的格式
  16. byobu session window split
  17. 2018-10-19 00:13:35 ArrayList
  18. SpringMVC RedirectView的使用以及源码分析
  19. C# 在多线程环境中,进行安全遍历操作
  20. Android RIL结构分析与移植

热门文章

  1. WSL配置高翔vslam环境
  2. java语言基础(八)_接口_多态
  3. 从别人的代码中学习golang系列--02
  4. 跟着阿里学JavaDay07——Java基础语法(五)
  5. 【蓝桥杯】2018年第九届蓝桥杯C/C++B组省赛——B题 等差素数列
  6. Java并发编程(06):Lock机制下API用法详解
  7. 状压DP之互不侵犯
  8. Scala 基础(九):Scala 函数式编程(一)基础(一)概念、定义、调用机制
  9. scrapy 基础组件专题(十二):scrapy 模拟登录
  10. java 数据结构(二):java常用类 二 StringBuffer、StringBuilder