2012-02-07 93 views
2

我有一个登录页面。用户可以登录到他们的账户并获得他们的详细信息。但我很困惑,我应该将用户详细信息存储在会话变量中,还是只应将ID作为会话变量传递,并在下一页中使用ID通过类检索所有详细信息。PHP会话vs类

如果我只传递ID作为会话变量,那么我必须在每个页面中调用该类。请给我正确的想法,我不想多次给班上课,页面加载速度会更快。

在此先感谢。

+1

您始终可以将对象存储为会话。该对象包含其所有属性。 – JonH 2012-02-07 19:38:10

回答

2

很长时间以来,性能方面并不重要。你可以选择任何方法。

根据我的经验,将ID存储在会话中,并在用户类中需要时检索用户数据是更常见的方法。

存储包含在会话中序列化形式的用户数据的对象也是可能的,但

  • 它可以花费大量的存储器(因为会话数据被加载到PHP脚本在每次请求)

  • 你不能依靠数据是新鲜的(如果有什么用户改变自己的喜好,还是其他什么东西发生了什么?)

+0

谢谢你的时间。问题是假设用户有5个页面要访问,并且在每个页面中,我都通过调用一个类从DB获取信息,并假设我有500个用户在线。考虑一下MySql的负载。 我只想让我的网站运行得更快,更顺畅。那么任何想法..? – kwaxy 2012-02-08 08:54:38

0

我认为ÿ ou只应将会话ID存储在会话变量中。如果您在会话中存储有关用户的某些信息,则您将不会获得性能优势,因为以后您将不再需要哪种附加信息,并且序列化 - 反序列化也需要一些时间(特别是在将会话存储在数据库中时!)。

对于示例我总是在每个请求中加载数据库中的用户数据,因为我必须检查用户的几个原因:他/她是否被锁定,他/她是否被禁用,他/她的首选语言是什么,他上次在这里等等。