Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 销毁不同服务器上的会话_Php_Session - Fatal编程技术网

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+缓存