首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP session_set_save_handler:在写()之前读取()

问PHP session_set_save_handler:在写()之前读取()
EN

Stack Overflow用户
提问于 2013-08-30 13:58:57
回答 1查看 409关注 0票数 0

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

因此,我决定阅读session_set_save_handler背后的文档,看起来调用write()的唯一时间是会话终止或PHP关闭的时候。在我看来,这看起来很没用..。为什么有人会在最后写()或存储这些信息,然后才有机会检索它呢?

我想要做的是,当某人创建一个use会话时,这些信息将被写入数据库,并且每当我想要检查身份验证或查找用户值时,我都想检索该信息。

我是不是搞错了??我很感谢你的澄清。如果有人需要任何代码来演示我想要做的事情,我会更新它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-30 14:05:16

在我看来,这看起来很没用..。为什么有人会在最后写()或存储这些信息,然后才有机会检索它呢?

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

要检索它,需要调用read方法--并且在前面调用它,这样您就已经有了信息。但不知怎么的,这就是你对…的抱怨?

我是否正确地假设您对PHP会话机制的工作方式不太了解?

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

然后,当脚本结束或调用session_write_close时,数据将被写回。

因此,当然,在写函数之前调用读函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18534757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档