我刚开始使用 Ratchet ( http://maker.github.io/ratchet/ ),它很棒。但是,我遇到的一个大问题是用户必须单击注销按钮(实际上是一个锚点<a>
)两次才能真正发生注销。
我打算将此作为应用程序保存到 iPhone 主屏幕,在那里它可以作为全屏 web 应用程序启动。通常,关闭此类 Web 应用程序时不会维护会话(与常规 Safari 相比,它是沙盒)。我有 99% 的把握这个点击两次注销问题是因为我不仅使用 PHP 会话,而且还使用 cookie,以便用户在关闭全屏 Web 应用程序后仍保持登录状态(根据这篇文章的第二个答案)。
我的注销脚本如下:
// logout.php
<?php
session_start();
setcookie(session_name(),"",time()-3600);
$_SESSION = array();
session_destroy();
header('Location: /');
?>
我认为这个问题可能与 Ratchet 的有关push.js
,但即使我使用 设置注销链接data-ignore="push"
,当前页面也会在 Safari 中重新打开(这本身很烦人,因为如果用户将其保存到他们的主屏幕,我希望它仅在该全屏界面中运行),我仍然需要再次点击注销。
该问题似乎也不是将其作为全屏 Web 应用程序运行的问题,因为我在通过 Safari 访问它时遇到了同样的问题。
任何指针?