php获取客户端cookies_php怎么读取Cookie

php读取Cookie的方法:我们可以通过超全局变量$_COOKIE来读取cookie的值。在php5之后从客户端发送来的cookie信息会被自动保存在$_COOOKIE全局数组中。

944beff0041f87320ef4e137b926d862.png

php读取Cookie

如果 Cookie 设置成功,客户端就拥有了 Cookie 文件,用来保存 Web 服务器为期设置的用户信息。假设我们在客户端使用了 Windows 系统去浏览服务器中的脚本, Cookie 文件会被存放在 “ C:\Documents and Settings\ 用户名\ Cookies” 文件夹下。

Cookie 是一个以普通文本文件形式记录信息的,虽然直接使用文本编辑器就可以打开浏览,但直接去阅读 Cookie 文件中的信息是没有意义的。而是当客户再次访问该网站时,浏览器会自动把与该站点对应的 Cookie 信息全部发送给服务器。

从PHP5之后,任何从客户端发送过来的 Cookie信息,都会被自动保存在 $_COOKIE 全局数组中,所以在每个 PHP脚本中都可以从该数组中读取相应的 Cookie信息。

$_COOKIE 全局数组存储所有通过 HTTP 传递的 Cookie 资料内容,并以 Cookie 的识别名称为索引值、内容值为元素。

在设置 Cookie 脚本中,第一次读取它的信息并不会生效,必须刷新或到下一个页面才可以看到 Cookie 值,因为 Cookie 要先被设置到客户端,再次访问时才能被发送过来,这是才能被获取。所以要测试一个 Cookie 是否被成功设定,可以再其到期之前 通过另外一个页面来访问其的值。

在PHP中可以直接通过超全局变量数组 $_COOKIE[] 来读取浏览器端的 Cookie 值。

实例代码如下所示:<?php

date_default_timezone_set('PRC'); //设置时区

if(!isset($_COOKIE['time'])){ //检测 Cookie 文件是否存在

setcookie('time',date('y-m-d H:i:s')); //设置一个 Cookie 变量

echo "第一次访问";

}else{

setcookie('time',date('y-m-d H:i:s'),time()+60); //设置保存 Cookie 失效的时间的变量

echo "上次访问的时间为:".$_COOKIE['time']; //输出上次访问网站的时间

echo '
';

}

echo "本次访问的时间为:".date('y-m-d H:i:s'); //输出当前的访问时间

?>

在上面的代码中,首先使用 isset()函数检测 Cookie 文件是否存在。如果不存在,则使用 setcookie() 函数创建一个Cookie,并输出相应的字符串;如果 Cookie 文件存在,则使用 setcookie() 函数 设置文件失效的时间,并输出用户上次访问网站的时间,最后在页面输出本次方位网站的当前时间。

首次运行实例时,由于没有检测到 Cookie 文件,运行结果图如下所示:

f59666ceaf2d4fa68b510fc569b4740c.png

如果用户在 Cookie 设置失效的时间(上面的实例为60秒)前刷新或者再次访问该网页,运行结果如下:

0ce043d8464f68384e668298bff360ff.png

注意:如果未设置 Cookie 失效的时间,则在关闭浏览器时自动删除 Cookie 数据。如果为 Cookie 设置了失效的时间,浏览器将会记住Cookie 数据,即使重新启动了计算机,只要没有到期,再访问网站时也会获得访问的数据信息。

更多相关知识,请访问 PHP中文网!!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值