Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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
Javascript 仅在登录页面上显示一次注销通知_Javascript - Fatal编程技术网

Javascript 仅在登录页面上显示一次注销通知

Javascript 仅在登录页面上显示一次注销通知,javascript,Javascript,在受密码保护的网站(ajax php jquery登录系统)上,fadeIn/fadeOut警报确认用户刚刚注销。用户被发送回登录页面,我做了一个文档。referer来检查他是否来自该站点的某个页面(如果是,则表示他刚刚注销,以便我可以显示消息)。当然,如果用户刷新页面,他会再次收到通知 我正在考虑更改文档。referer,但该属性是只读的。你知道如果用户确实注销了,我怎么能只显示一次消息吗?你可以用PHP做一个有条件的操作: if(isset($_SESSION['justLoggedOut'

在受密码保护的网站(ajax php jquery登录系统)上,fadeIn/fadeOut警报确认用户刚刚注销。用户被发送回登录页面,我做了一个
文档。referer
来检查他是否来自该站点的某个页面(如果是,则表示他刚刚注销,以便我可以显示消息)。当然,如果用户刷新页面,他会再次收到通知


我正在考虑更改
文档。referer
,但该属性是只读的。你知道如果用户确实注销了,我怎么能只显示一次消息吗?

你可以用PHP做一个有条件的操作:

if(isset($_SESSION['justLoggedOut'])){
    print '<script type="text/javascript"> ..notification code.. </script>';
    unset($_SESSION['justLoggedOut']);
}
if(isset($\u会话['justLoggedOut'])){
打印“…通知代码…”;
取消设置($_会话['justLoggedOut']);
}

您只需在经过身份验证的区域(或重定向到索引页的注销页[我假设])内设置会话即可。

使用cookie将是最简单的路径。只需在他们注销时添加cookie,然后在显示通知后将其删除。此cookie可以包含您想要的有关注销的所有信息:例如,注销的时间和他们发起注销的URL


当然,这是假设您的客户允许在您的站点上使用cookie。服务器端的替代方案是使用会话数据。然后,您的通知将向服务器发送一个AJAX回调,以清除应显示通知的指示器。

您所谈论的模式通常称为“flash通知”,用谷歌搜索一下,你应该会发现一些如何实现它的想法。通常,这种格式会被扩展到迭代一系列消息,在显示时会使项目不稳定。我尝试过这种方法,并在用户注销时成功创建了一个会话,如下所示:
session\u name('justLoggedOut');会话_start()然后我使用了上面的代码,但是javascript没有打印,会话仍然存在。我做错了什么?试试这个:
$\u SESSION['justLoggedOut']=true它也不起作用。我不明白,我可以在Firebug中看到会话,但条件不起作用。。。我自己会找到答案的,我可能在别的地方做错了什么?有趣的是,我也尝试了cookie解决方案,同样的事情也发生了:cookie被成功创建,但if语句从未被验证过!无论如何谢谢你的努力。