【PHP】??走进 PHP?? 第七课 Cookie & Session
概述
从今天开始, 小白我将带领大家一起来学习一下 PHP 的基础知识.
Cookie
Cookie 是 Web 服务器存在客户端的一系列文本信息, 是客户端保存用户状态的一种技术.
- 当服务器响应客户端是, 会将少量的数据通过 Cookie 写入到客户端中
- 客户端将 Cookie 中的数据保存在硬盘上
- 当客户端再次访问服务器数据时, 会将 Cookie 中携带入到请求中
- 服务器可以获取到请求中携带的 Cookie 数据
- 通过 Cookie 可以将数据在服务器和客户端之间来回的传递, 进行数据交互, 实现用户状态的管理
如何查看 Cookie
首先我们打开浏览器设置:
然后打开 Cookie 及其他网站数据: 然后查看所有 Cookie 和网站数据:
写入 Cookie
格式:
setCookie(key, value, expire, path)
- key 保存数据的键
- value: 保存数据的值
- expire: 表示失效时间, 从 1970-1-1 至今的秒数. 默认当回话结束时 Cookie 过期
- path:访问路径, 只有当该路径下文件访问时才会携带当前 Cookie 数据
例1:
<?php
# 设置cookie
setcookie("username", "我是小白呀");
echo "success";
?>
效果: 例 2 (设置过期时间):
<?php
# 过期时间
$expire = time() + 7 * 24 * 3600;
# 设置cookie
setcookie("username", "我是小白呀", $expire);
echo "success";
?>
效果:
读取 Cookie
<?php
# 读取Cookie
print_r($_COOKIE);
?>
输出结果:
Array ( [username] => 我是小白呀 [Phpstorm-1a44a69f] => 57237263-1ff0-4fc3-b0d2-841448a7cf57 )
注意事项:
- Cookie 是客户端存储技术, 且只能存储字符串
- Cookie 保存的数据大小有限制, 一般在 4k 左右
- Cookie 为明文存储, 安全性较低
- 浏览器可以禁用 Cookie, 禁用后将无法使用 Cookie 存储数据
Session
会话 (Session) 指的是浏览器于服务器之间的一次通话, 包含浏览器于服务器之间的多次请求, 响应过程. 会话用于在服务器上存储用户相关的信息, 是服务器保存用户状态的一种技术. 通过 Session 可以在服务器上存储会话信息, 记录会话状态, 实现用户状态的管理.
- 当服务器接收到某个客户端发送的第一次请求时, 就会创建一个 Session 对象并生成一个与之关联的 id, 称为 session id
- 在服务器响应客户端时, 会将 session id 响应给客户端保存
- 客户端会将 session id 保存到 cookie 中, 对应的 key 为 phpsessid
- 当客户端再次访问服务器是, 会将 cookie 中的数据带到服务器中, 其中就包含了 session id
- 服务器根据 session id 获取到对应的 session 对象
创建 Session
<?php
# 创建会话
session_start();
# 调试输出
echo session_id();
# 关闭Session
session_destroy();
?>
效果:
向 Session 中添加数据
<?php
# 创建Session
session_start();
# 调试输出
echo session_id() . "\n";
# 向Session中存储数据
$_SESSION["username"] = "我是小白呀";
$_SESSION["age"] = 19;
# 输出Session数据
print_r($_SESSION);
# 关闭Session
session_destroy();
?>
输出结果:
7ni0qhaqvek9bhsolv153670tb
Array
(
[username] => 我是小白呀
[age] => 19
)
Cookie vs Session
| Cookie | Session |
---|
存储位置 | 保存在客户端 | 保存在服务器 | 数据类型 | 只能保存字符串 | 可以保存任意类型 | 数据大小 | 数据大小有限制 | 数据大小无限制 | 有效期 | 可以长期保存在客户端 | 随着会话结束而关闭 | 安全性 | 安全性较低 | 安全性较高 |
|