PHP学习--会话技术

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值