Cookie技术
Cookie技术在浏览器和服务器之间的传输过程
- 服务器向客户端发送Cookie时,会在HTTP响应头中增加Set-Cookie响应头字段
- Set-Cookie:City=beijing ;Path=/;
- City表示Cookie的名称
- beijing表示Cookie的值
- Path表示Cookie的属性
1.在使用Cookie之前,首先得创建Cookie
在PHP中通过setcookie()函数创建Cookie,其声明方式如下
- bool setcookie( string $name [, string $value [, int $expire = 0 [,
string $path [, string $domain [, bool $secure]]]]] ) - 参数$name是必需的,表示Cookie的名称
- 使用“[]”括起来的参数是可选的
- $value用于表示Cookie的值
- $expire用于表示Cookie的有效期
- $path用于表示Cookie在服务器端的有效路径
- $domain用于表示Cookie的有效域名
- $secure用于指定Cookie是否通过安全的HTTPS连接来传输
Session技术
会话期间,当用户第一次访问服务器时,PHP都会自动生成一个唯一的会话id,用于标识不同的用户
.在使用Session之前,首先得创建Session
1.在PHP中启动Session
bool session_start()
bool是session_start()函数的返回值类型,如果session启动成功,该函数返回true,否则返回false
2.三种删除Session中数据的方式
- 删除单个数据
- unset($_SESSION[‘key’]);
- 删除所有数据
- $_SESSION =array();
- 结束当前会话
- bool session_destroy();
练习–浏览历史
<?php
$arr = array(
array("标题1","dddddddddddddd111"),
array("标题2","dddddddddddddd222"),
array("标题3","dddddddddddddd333"),
array("标题4","dddddddddddddd444"),
array("标题5","dddddddddddddd555"),
array("标题6","dddddddddddddd666")
);
$page = isset($_GET['page'])?$_GET['page']:1;
$page = max($page,1);
$arr_num = count($arr);
$page = min($page,$arr_num);
$data =$arr[$page-1];
if ($_GET['action']=="clear"){
$cookie_arr = array();
setcookie("history","",time()-1);
} else {
if (isset($_COOKIE['history'])){
$cookie_arr = explode(",", $_COOKIE['history']);
if (in_array($page, $cookie_arr)){//判断 值 在数组中是否存在
$index = array_search($page, $cookie_arr);
array_splice($cookie_arr, $index, 1);
}
$cookie_arr[] = $page;
$cookie_str = implode(",", $cookie_arr);
setcookie("history", $cookie_str);
} else {
$cookie_arr[] = $page;
setcookie("history", $page);
}
}
$cookie_arr = array_reverse($cookie_arr);
?>
<!DOCTYPE html>
<html>
<head>
<title>浏览历史</title>
</head>
<body>
<h1><?=$data[0];?></h1>
<p><?=$data[1];?></p>
<a href="?page=1">【首页】</a>
<a href="?page=<?=$page-1;?>">【上一页】</a>
<a href="?page=<?=$page+1;?>">【下一页】</a>
<a href="?page=<?=$arr_num;?>">【尾页】</a>
<br><br>
<span>浏览历史(<a href="?action=clear">清空历史</a>)</span>
<ul>
<?php foreach ($cookie_arr as $k => $v){?>
<li><?=$arr[$v-1][1]?></li>
<?php }?>
</ul>
</body>
</html>