php - 在一个实例中使用 PHP 的多个 session ?

标签 php session-variables session-cookies

我有一个项目,我想在一个浏览器中创建两个 session cookie。第一个 session 将唯一地标识一个人,第二个 session 将在用户之间共享 session 中的事件。我一直为此使用数据库,但希望数据在 session 结束时消失。系统内没有登录。

除了创建 cookie 系统来复制功能之外,还有其他方法可以做到这一点吗?

例如,我们有两个 session cookie:

name=someRandomUUIDsession=valueSharedBetweenUsers。

我不想与多个用户共享 name session ,但 session session 会。想法?

最佳答案

如果你想在用户之间共享信息,使用 session 不是最好的主意,因为它使用文件系统。您最好使用处理所有锁定、并发等问题的数据库。

尽管您的要求在技术上是可行的,但我强烈建议您不要这样做。

编辑

假设我已经正确理解了您的要求,下面是我的做法:

  1. 仅使用 session 来存储与该用户相关的 session 数据。它可能包括如下内容:

    $_SESSION['name'] = 'test name';
    $_SESSION['groupid'] = 2;
    
  2. 一个 MySQL 数据库和表,包含字段 groupidXXXXX(您要存储的数据)、timestamp

每当有人更新特定组 ID 的信息时,您都会更新时间戳。

然后运行一个简单的 cronjob 来检查是否有任何 current time - timestamp > 3600(一小时),您可以将其视为陈旧并删除这些记录。

关于php - 在一个实例中使用 PHP 的多个 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3602476/

相关文章:

php - 不知道如何处理 redis 和 php

php - 将图像上传到特定的 Facebook 相册

php - 使用 CodeIgniter 在数据库中记录更改的合适方法是什么

php/pdo/mysql 从 select * in html 表中访问选定的行

node.js - Express js看不到cookie,它是在调用route之前设置的

language-agnostic - 命名浏览器 cookie 的约定

php - 通过 : remote_cache 使用 Capistrano + Gitlab 进行部署

java - servlet如何工作?实例化, session ,共享变量和多线程

c# - 在新构建后保留 Session[] 变量

cypress - 我可以使用 cy.session() 而不调用 cy.visit() 吗?