Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 facebook如何检测注销?_Php_Facebook - Fatal编程技术网

Php facebook如何检测注销?

Php facebook如何检测注销?,php,facebook,Php,Facebook,如您所见,虽然我们在facebook上有5个打开的选项卡,但一旦我们在其中一个选项卡上“注销”,然后转到另一个选项卡,它会检测到我们已注销并通知我们,并将用户重定向到登录页面。这是怎么回事?我想用PHP/jQuery为我的web应用程序制作这样的东西。我只需要一个提示 提前感谢它肯定会使用请求,这些请求以异步方式与web服务器联系(无需刷新页面) 使用JQuery库进行Ajax请求非常简单:与任何其他应用程序的方式相同:当您注销时,服务器要么从客户端删除cookie,要么更改其值以指示“注销”状

如您所见,虽然我们在facebook上有5个打开的选项卡,但一旦我们在其中一个选项卡上“注销”,然后转到另一个选项卡,它会检测到我们已注销并通知我们,并将用户重定向到登录页面。这是怎么回事?我想用PHP/jQuery为我的web应用程序制作这样的东西。我只需要一个提示

提前感谢

它肯定会使用请求,这些请求以异步方式与web服务器联系(无需刷新页面)


使用JQuery库进行Ajax请求非常简单:

与任何其他应用程序的方式相同:当您注销时,服务器要么从客户端删除cookie,要么更改其值以指示“注销”状态。当稍后发出新请求时,服务器会在cookie中检测到此状态,并为注销的用户返回适当的内容


Facebook通过AJAX实现了这一点,但这并没有改变现状。如果您使用浏览器的开发人员工具监视Facebook的AJAX请求,您将能够看到所有血淋淋的详细信息。

最简单的方法之一是使用会话变量来控制用户是否登录。当您点击“注销”时,它会将该变量设置为false

Facebook将有一个脚本,定期调用某种ajax调用服务器端脚本,以检查会话是否仍然有效。一旦无效,ajax调用将导致弹出窗口出现。

Facebook在其页面上使用技术。每个页面都有一个打开的HTTP请求。一旦某些内容发生变化(例如“传入聊天信息”或您的情况下是“用户已注销”),此信息将被推送到客户端


如果您使用NGINX作为Web服务器,我建议您查看一下

,它可能会破坏会话/cookie。/@h2ooooooo这很明显,但他们如何每5秒检查一次?您的回答很明显,但您真的认为他们使用简单的setTimeOut函数来按时间运行函数吗?我不这么认为如果没有请求怎么办?转到fb中的simlpe评论页面,并在那里进行检查,ty@behz4d:他们要么这样做,要么使用(这是相同的机制,但有一个扭曲)。没有其他技术对他们同样有效。@behz4d这是一种很长的轮询技术,正如Jon所说,他们不使用简单的ajax调用和setTimeOut,我想这会使系统崩溃,每1秒对一百万在线用户进行一次ajax调用!现实地说:Facebook一直处于持续的DDos之下。