代码之家  ›  专栏  ›  技术社区  ›  Edward R

PHP会话设置保存句柄:在写入之前读取()

  •  0
  • Edward R  · 技术社区  · 12 年前

    我正试图将我的所有会话数据保存在数据库中,并让这个类处理所有这些数据,并使用session_set_save_handler进行设置。现在,我不知道这是否是因为我不完全理解该函数背后的整个想法,但我遇到的问题是,我的会话处理程序类的read()函数在write()之前被调用。这不好的原因是read()试图在数据库中查找尚未写入数据库的信息,当然它会得到空的结果。

    因此,我决定阅读session_set_save_handler后面的文档,看起来调用write()的唯一时间是会话终止或PHP关闭时。从我的角度来看,这似乎很没用。。。为什么有人会在有机会检索之前将这些信息写入()或存储在END?

    我试图做的是,当有人创建使用会话时,这些信息会被写入数据库,每当我想检查身份验证或查找用户值时,我都想检索所述信息。

    我做错了吗??我感谢任何澄清。如果有人需要任何代码来演示我正在尝试做什么,我会更新它。

    1 回复  |  直到 12 年前
        1
  •  1
  •   C3roe    12 年前

    从我的角度来看,这似乎很没用。。。为什么有人会在有机会检索之前将这些信息写入()或存储在END?

    在他们有机会取回之前你是什么意思?

    要检索它 阅读 方法被调用,它被调用 之前 ,这样您就已经掌握了信息。但不知怎么的,这就是你在抱怨的?


    我假设您根本不了解PHPs会话机制是如何工作的,这是对的吗?

    您可以在每个脚本的顶部调用session_start。如果PHP在传递给脚本的参数中找到会话id,它会查找具有该id的现有会话,如果找到,它 读取 从那时起,您可以使用PHP为您放入超级全局数组$_SESSION中的数据。您可以从那里访问它,也可以将新数据放入其中或更改现有数据。

    然后,当脚本结束或调用session_write_close时,数据为 书面的 返回

    所以当然 阅读 函数在 作用