我有一个登录页面。用户可以登录他们的帐户并获取他们的详细信息。但是我很困惑,我应该将用户详细信息存储在会话变量中,还是应该只将ID作为会话变量传递,并在下一页中使用ID检索类的所有详细信息。
如果我只将ID作为会话变量传递,那么我必须在每个页面中调用该类。请给我正确的想法,我不想反复调用该类,页面应该加载更快。
提前致谢。
答案 0 :(得分:2)
长期以来,在性能方面无关紧要。你可以选择任何方法。
根据我的经验,将ID存储在会话中,并在用户类中需要时检索用户数据是更常见的方法。
也可以在会话中以序列化形式存储包含用户数据的对象,但
它会耗费大量内存(因为会话数据会在每次请求时加载到PHP脚本中)
您不能依赖新鲜的数据(如果用户更改了他们的偏好,或者其他什么事情发生了怎么办?)
答案 1 :(得分:0)
我认为你应该只在会话变量中存储会话ID。如果您在会话中存储有关用户的一些信息,那么您将不会获得任何性能优势,因为您永远不会在以后需要什么样的附加信息,序列化 - 反序列化也需要一些时间(特别是在数据库中存储会话时!)。 / p>
例如,我总是在每个请求中加载来自db的用户数据,因为我必须检查用户有几个原因:他/她是否被锁定,他/她是否被禁用,他/她的首选语言是什么,何时是他/她在上次等等。