检查用户何时使用PHP离开页面

检查用户何时使用PHP离开页面,php,Php,好的,我读了,有人建议使用此代码检查用户是否离开页面: if($_SERVER['REQUEST_URI'] !== 'page_with_session.php'){ session_destroy(); // Kill session for all pages but page_with_session.php } 现在有人可以解释一下请求URI是如何工作的,因为我在PHP手册中找不到它,或者有人可以建议另一种方法来检查用户何时离开页面 请注意,我不能将Javascrip

好的,我读了,有人建议使用此代码检查用户是否离开页面:

    if($_SERVER['REQUEST_URI'] !== 'page_with_session.php'){
    session_destroy(); // Kill session for all pages but page_with_session.php
}
现在有人可以解释一下请求URI是如何工作的,因为我在PHP手册中找不到它,或者有人可以建议另一种方法来检查用户何时离开页面


请注意,我不能将Javascript用于此项目。

使用该代码,您只能在用户更改到服务器上的其他页面时才能知道。如果他转到另一个网站,或关闭选项卡/浏览器,这将不起作用。改用javascript或使用会话超时。
REQUEST_URI是当前请求的URI,因此如果用户更改到服务器上的另一个页面,您可以检查该页面是否为“会话页面”,并销毁该会话。只有在不使用重写或类似技术的情况下,这才有效。

使用该代码,您只能在用户更改到服务器上的其他页面时才能知道。如果他转到另一个网站,或关闭选项卡/浏览器,这将不起作用。改用javascript或使用会话超时。 REQUEST_URI是当前请求的URI,因此如果用户更改到服务器上的另一个页面,您可以检查该页面是否为“会话页面”,并销毁该会话。只有在不使用重写或类似技术的情况下,这才有效

$\服务器是一个数组,包含头、路径和脚本位置等信息。此数组中的条目由web服务器创建。不能保证每个web服务器都会提供这些服务;服务器可能会忽略一些,或者提供此处未列出的其他服务器。这就是说,在»CGI/1.1规范中考虑了大量这些变量,因此您应该能够预期这些变量

$HTTP_SERVER_VARS包含相同的初始信息,但不是超全局的。(请注意,$HTTP_SERVER_VARS和$_SERVER是不同的变量,PHP会处理它们)

“请求URI” 为访问此页面而提供的URI;例如,“/index.html”

(c) php.net

正如你所看到的,它已经被完美地解释了。当用户离开页面时,您将无法执行所需的操作。正如@jimpic告诉你的,使用会话

$\服务器是一个数组,包含头、路径和脚本位置等信息。此数组中的条目由web服务器创建。不能保证每个web服务器都会提供这些服务;服务器可能会忽略一些,或者提供此处未列出的其他服务器。这就是说,在»CGI/1.1规范中考虑了大量这些变量,因此您应该能够预期这些变量

$HTTP_SERVER_VARS包含相同的初始信息,但不是超全局的。(请注意,$HTTP_SERVER_VARS和$_SERVER是不同的变量,PHP会处理它们)

“请求URI” 为访问此页面而提供的URI;例如,“/index.html”

(c) php.net


正如你所看到的,它已经被完美地解释了。当用户离开页面时,您将无法执行所需的操作。正如@jimpic告诉您的那样,使用会话。

唯一真正做到这一点的方法是保持非常短的会话超时,然后使用带有元刷新的嵌入式iframe,或者对PHP页面进行javascript调用以保持其活动。

唯一真正做到这一点的方法是保持非常短的会话超时,然后有一个带有元刷新的嵌入式iframe,或者一个对PHP页面的javascript调用来保持它的活力。

好吧,“离开页面”的概念非常广泛。如果我关闭浏览器,我会离开你的页面,但我相信你不会以同样的方式关注它。请提供一些详细信息:-)如果用户访问我看到的站点内的链接,我只想取消设置一个会话变量,但为什么要这样做?session变量用于存储会话信息,不仅是登录信息(以防您的目标是破坏登录)-抱歉,我不是要批评,只是想了解更多PHP仅在请求时才起作用。因此,浏览器需要让PHP知道何时离开页面。没有javascript就没有这样的浏览器机制。好吧,谢谢你的回答,我想我下一步将学习javascript:)嗯,“离开页面”的概念非常广泛。如果我关闭浏览器,我会离开你的页面,但我相信你不会以同样的方式关注它。请提供一些详细信息:-)如果用户访问我看到的站点内的链接,我只想取消设置一个会话变量,但为什么要这样做?session变量用于存储会话信息,不仅是登录信息(以防您的目标是破坏登录)-抱歉,我不是要批评,只是想了解更多PHP仅在请求时才起作用。因此,浏览器需要让PHP知道何时离开页面。没有javascript就没有这样的浏览器机制。好的,谢谢你的回答,我想我下一步将学习javascript:)