在一个实例中使用PHP进行多个会话?

在一个实例中使用PHP进行多个会话?,php,session-variables,session-cookies,Php,Session Variables,Session Cookies,我有一个项目,我想在一个浏览器中创建两个会话cookie。第一个会话将唯一地标识一个人,第二个会话将在用户之间共享会话中的事件。我一直在为此使用数据库,但希望在会话结束时数据消失。系统中没有登录名 除了创建一个cookie系统来复制功能外,还有其他方法可以做到这一点吗 例如,我们将有两个会话cookie: name=someRandomUUID和session=valueshared在用户之间。 我不想与多个用户共享名称会话,但是会话会话将是。想法?如果您想在用户之间共享信息,使用会话不是最好的

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

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

例如,我们将有两个会话cookie:

name=someRandomUUID
session=valueshared在用户之间。


我不想与多个用户共享
名称
会话,但是
会话
会话将是。想法?

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

虽然从技术上讲,你的要求是可能的,但我强烈建议你不要这样做

编辑

假设我正确理解了您的要求,我会这样做:

  • 仅使用会话存储与该用户相关的会话数据。它可以包括如下内容:

    $_SESSION['name'] = 'test name';
    $_SESSION['groupid'] = 2;
    
  • 一个MySQL数据库和表,其中包含字段
    groupid
    XXXXX
    (要存储的数据),
    时间戳

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


    然后运行一个简单的CRONBOOST检查是否有任何代码<当前时间-时间戳> 3600代码/代码>(一个小时),您可以将其视为过时并删除这些记录。

    < P>我认为*您只能有一个“当前”会话,但您所指的功能是SeSession名称:

    cookie功能非常简单。我建议改为研究这个问题。

    用户之间的“价值共享”从何而来?它是常量还是数据库条目

    无论哪种方式,每个小组创建一个会话都没有意义。您应该为每个用户提供一个唯一的会话;将“共享”属性作为每个人的会话属性

    因此,启动唯一会话,然后只需执行

    现在每个人都有一个会话,该会话具有唯一的sessionID和一个公共值“session”


    (显然,如果您以后需要更改此属性,您必须为每个经过授权的个人分别执行此操作)

    这并不像人们让facebook和twitter在用户登录时创建至少10个不同的会话那样牵强

    当然。我想这是我在这里见过的最奇怪的问题。问你自己一个问题,你的共享会话应该在什么时候结束?如果我错了,请纠正我,但你本质上想要一个共享会话,对吗?您希望能够设置$\u会话['shared']='somevalue',并在您的用户之间共享该会话吗?如果是这样的话,那就不是真正的会话了,你可能必须为此构建自己的cookie系统。@Col.Shrapnel:当会话中的每个用户都不再使用会话时。-------@Ryan Kinal是的,我想要一个共享会话,但我也想要一个私人会话。共享会话将做你通常期望数据库做的事情(这不是一个专业项目,因为它会把可能的事情搞乱,看看我们能做什么),我不想要$\u会话在正常意义上,我希望能够管理一个客户机的多个$\u会话。因此,假设每个用户都会离开你的网站?你真的确定这是可能的吗?这真的是一个实验,概念是当每个人都离开时,它就死了。它们可能有多个共享会话,但只有一个专用会话。如果共享域中仍然有人,那么它应该是活动的。您能详细说明文件系统的使用情况吗?@user:如果两个用户同时访问该站点,则两个进程可能同时写入共享会话。如果发生这种情况,至少有一个用户的更改将被忽略,在最坏的情况下,会话文件将被破坏。我完全同意这是一种更好的方法,这不是会话的用途,但这实际上只是尝试一些不同的方法:多会话管理,功能类似于$\u会话,只允许多个会话。例如,值可以是用户在输入中输入同一个单词,然后启动名为“苹果”的会话两个用户都可以打印($\u会话)并将数据发布到数组中。用户还可以单独控制他们所处的会话,例如为什么需要私人会话。