gpt4 book ai didi

php - 服务器如何存储使用 PHP 创建的 session 变量?

转载 作者:搜寻专家 更新时间:2023-10-31 21:12:09 24 4
gpt4 key购买 nike

我想知道服务器如何存储(不是位置而是过程/方法)和管理 session 变量。如果我错了请更正。

我把它想象成:-

假设我创建三个 session 变量

$_SESSION['id']=12;
$_SESSION['flag']=t;
$_SESSION['name']=alex;

然后服务器创建一个表(或者一个文件)

-----------------------------------------------
session_id | id | flag | name
-----------------------------------------------
a45sdg665 | 12 | t | alex
| | |
| | |

session_id 由服务器创建,对于每个用户都是唯一的。然后服务器将 session_id 作为 cookie 发送到客户端浏览器。当用户在他的 session 期间发送另一个请求时,浏览器也会发送该 session_id 以及要求。服务器然后引用该表并可以识别用户。作为程序员,我们可以使用 id(由我们存储)从数据库中获取不同的信息。(如果我错了,请简要说明程序)。

最佳答案

session 可以但不必使用数据库后端。您的其余语句通常没问题(cookies、session_id)。

PHP 中的默认 session 存储是 /tmp 文件夹中的一个文件 - 可以通过打印 session.save_path 检查路径。

总而言之, session 可以利用:

  1. 硬盘上的文件
  2. 内存中的文件,例如在 /dev/shm 及其子文件夹中(/tmp 也可以驻留在 RAM 中)
  3. 数据库—— session 表可能驻留在磁盘或内存中
  4. 专用内存后端

对您的评论的回应:您了解浏览器和网络服务器之间共享 session 数据的过程。但是,如果您想手动访问 session 数据(在 PHP 脚本之外),那么使用的 session 存储对您来说很重要。

如果您将 user_id 存储在 $_SESSION 变量中,那么可以 - 您可以在任何后续的 PHP 脚本中使用它来查询数据库中的用户相关信息请求。

关于php - 服务器如何存储使用 PHP 创建的 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com