PHP深入理解cookie概念与cookie的设置与读取并完成浏览历史功能

  • 1,704
摘要

本文笔记主要做的是如何设置cookie、读取cookie、cookie参数设置、销毁cookie、并用cookie完成浏览历史功能!

设置COOKIE

setcookie('user','zhangsan');
echo '给你zhangsan牌子!';

PHP深入理解cookie概念与cookie的设置与读取并完成浏览历史功能

读取COOKIE

print_r($_COOKIE);
echo '你是',$_COOKIE['user'];

PHP深入理解cookie概念与cookie的设置与读取并完成浏览历史功能

参数设置cookie

setcookie()可以用2个参数,3个参数,4个参数,5个参数来设置

/*--------------2
2个参数设置cookie
cookie随着浏览器的关闭,就失效了.
*/
setcookie('age',29);
/*--------------3

3个参数来设置cookie的生命周期,以时间戳为单位
关掉浏览器后,可以对比出效果,age 关掉浏览器就失效
而school能存活1小时
*/

setcookie('school','MBA',time()+3600);
/***--------------4
cookie的作用域
一个页面设置的cookie,
默认在其同级目录下,及子目录下可以读取.
如果想让cookie整站有效,可以在根目录下setcookie
也可以用第4个参数,来指定cookie生效路径 
***/
setcookie('gloabl','any where!',time()+3600,'/');
/*--------------5
cookie是不能够跨域名(否则安全问题就太大了!)
比如sohu.com的cookie,不能被发到sina.com用
但是,可以在一个域名的子域名下使用
需要用第5个参数,来表示

例: setcookie('key','value',time()+2000,'/','.sina.com.cn');
这个cookie在book.sina.com.cn可以用
在mili.sina.com.cn也可以用
*/
echo 'cookie set ok';

销毁cookie

// 销毁cookie,把有效期改为0即可
setcookie('school','',0);

用cookie来完成浏览历史功能

用cookie来记录来本网站已经访问了多少页面,如果这个页面是第1次访问,是没有cookie信息的,所以第二次访问才会输出第一次访问,所以+1

if(!isset($_COOKIE['num'])) { // 第一次来访问,还没有cookie
    $num = 1;
    setcookie('num',$num);
} else {        // 有cookie信息,已经不是第1次来访问了.
    $num = $_COOKIE['num'];
    setcookie('num',$num + 1);
}


echo '这是你的第',$num,'次访问';

cookie来做浏览历史

<?php
$uri = $_SERVER['REQUEST_URI'];
header("Content-Type: text/html; charset=UTF-8");
/*
把uri放在cookie里
setcookie('history',array($uri));
这是错误写法,因为cookie只能存储字符串,数字,不能存储数组,资源这样的多维数据
因此$uri要放在数组里,但数组要转化成字符串
*/
if(!isset($_COOKIE['history'])) { // 第1次
    $his[] = $uri;
    //print_r($his);
} else {  // 已经是第N次访问了
    $his = explode('|',$_COOKIE['history']);
    array_unshift($his,$uri);
    $his = array_unique($his);
    //print_r($his);
    if(count($his) > 10) {
        array_pop($his);
    }

}
setcookie('history',implode('|',$his));
$id = isset($_GET['id'])?$_GET['id']:0;
?>
<p>
    <a href="07.php?id=<?php echo $id-1; ?>">上一页</a> <br />
</p>

<p>
    <a href="07.php?id=<?php echo $id+1; ?>">下一页</a> <br />
</p>
<ul>
    <li>浏览历史</li>
    <?php foreach($his as $v) { ?>
    <li><?php echo $v; ?></li>
    <?php } ?>
</ul>

PHP深入理解cookie概念与cookie的设置与读取并完成浏览历史功能

 

 

 

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年11月30日13:36:11
  • 转载请务必保留本文链接:https://www.150643.com/415.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  2   博主  0
    • PHP程序员雷雪松 PHP程序员雷雪松 2

      对PHP cookie重新学习一下。