Php 销毁不同服务器上的会话
我已经做了一个基本的登录系统,它应该可以正常工作 我在所有页面上使用Php 销毁不同服务器上的会话,php,session,Php,Session,我已经做了一个基本的登录系统,它应该可以正常工作 我在所有页面上使用session\u start()。我使用$\u session='user'设置会话变量 我用session_start()销毁它;会话_destroy() 我的问题是: 如果我在我的学校服务器上写这段代码,它就会工作。但是如果我在自己的服务器上尝试,我可以登录,但是我不能正确地破坏会话。当我单击“注销”并被发送到另一个页面时,我可以像没有登录一样单击返回到需要登录的页面。当我在我的学校服务器上这样做时,这种情况不会发生 不同
session\u start()
。我使用$\u session='user'设置会话变量代码>
我用session_start()销毁它;会话_destroy()代码>
我的问题是:
如果我在我的学校服务器上写这段代码,它就会工作。但是如果我在自己的服务器上尝试,我可以登录,但是我不能正确地破坏会话。当我单击“注销”并被发送到另一个页面时,我可以像没有登录一样单击返回到需要登录的页面。当我在我的学校服务器上这样做时,这种情况不会发生
不同版本的PHP有没有办法干扰基本会话?销毁代码?你不能,因为会话存储在你的文件系统中,所以你在服务器上有两个相同会话的实例
在这种情况下,一个不错的选择是将会话存储在数据库中,这样您的会话管理就会集中起来 首先会话启动()
启动会话,并会话_destroy()代码>销毁它。
您不需要在所有页面上启动会话。您可以在登录循环后/或在登录循环中执行此操作。至于销毁会话,您应该在注销时使用它。当然,这样做之后,您应该将用户重定向到主页或其他地方(由您决定)。
我建议您阅读特定页面上的会话和用户限制/访问。
希望这对您有所帮助。
注意:注销后,请尝试使用Ctrl+F5
刷新页面(您的浏览器中可能有缓存副本)如果您返回到该页面,是否也会刷新该页面?在您重新加载页面之前,浏览器可能会将其保留在缓存中。其名为browser cache.session\u destroy不会删除cookie。如何测试用户是否已登录?session_destroy()
并不总是做我期望的事情,我确信这是一种货物崇拜,但我通常取消($\u会话)
Too但最重要的是,我在同一台计算机上尝试了两个页面(一个来自学校,一个来自家里),并在我这样做时删除所有cookies+缓存