PHP走进 PHP 第七课 Cookie & Session

Posted 我是小白呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

CookieSession
存储位置保存在客户端保存在服务器
数据类型只能保存字符串可以保存任意类型
数据大小数据大小有限制数据大小无限制
有效期可以长期保存在客户端随着会话结束而关闭
安全性安全性较低安全性较高

以上是关于PHP走进 PHP 第七课 Cookie & Session的主要内容,如果未能解决你的问题,请参考以下文章

PHP & MySQL数据库专题 第七课 数据查询语句

PHP & MySQL数据库专题 第七课 数据查询语句

Golang✔️走进 Go 语言✔️ 第七课 字符串

Golang✔️走进 Go 语言✔️ 第七课 字符串

Golang✔️走进 Go 语言✔️ 第十七课 select & 超时和非阻塞

Golang✔️走进 Go 语言✔️ 第十七课 select & 超时和非阻塞