我在这里遇到一些小情况,但我想尝试并确保以正确的方式接近这一点。
我有一个由多家商店使用的网络应用程序。 每个商店都通过htaccess和htpasswd进行身份验证,以便连接到正确的数据库。 这部分效果很好!
每家商店都有多名员工,但每位员工都使用一台独立的计算机/工作站。
因此,Shop登录,获得身份验证,连接到正确的数据库,然后加载登录页面。
在登录页面,用户使用名称和密码登录应用程序,他们很高兴。 此时,我正在将用户信息(UserID,安全级别等)加载到会话中。 我的问题的一部分是垃圾收集,因为每隔一段时间会话变量就会丢失。 每个页面都有会话开始作为第一件事,所以我想在一小时左右不活动会话被垃圾收集器和poof收集,它就消失了。
我正在考虑将用户信息加载到$GLOBALS
超变量中,以避免由于不活动而丢失会话。
现在,我意识到有一些方法可以在PHP中延迟/停止垃圾收集器,但在我看来,如果我使用全局范围,它就不需要额外编码或配置PHP。
我是否正确假设只要每个用户在自己的机器上访问该网站,使用$GLOBALS
只会适用于每个用户?
答案 0 :(得分:2)
认为你对会话和全局变量有一般误解。
全局变量是整体上常见的变量 application ...它们的值可以在整个应用程序中使用 会话变量是常见的变量 整个应用,但对于一个特定的用户。它们也可以使用 整个应用程序...但他们在特定用户时死亡 会议结束。
https://stackoverflow.com/a/14848246/1022914
我建议使用会话。根据存储在数据库中的用户数据检查用户详细信息。如果它通过了身份验证,请创建包含要在您的页面中使用的用户数据的会话变量。这使得事情变得更容易
答案 1 :(得分:-2)
您可以使用缓存。它可以帮助您保持用户始终登录,如Facebook。