Safari后退按钮不支持PHP注销会话

Safari后退按钮不支持PHP注销会话,php,session,button,safari,back,Php,Session,Button,Safari,Back,我有一个logout.php页面,它结束了用户的会话,运行良好,并完成了以下操作: 会话_start(); session_unset(); 会话_destroy() 我刚刚注意到,在使用Safari进行测试时,当您注销时,可以单击“上一步”按钮返回到上一页,该页需要身份验证,但不会出现提示。如果不输入导航,则无法离开此页面,但它首先不应显示上一页 到目前为止,在我的测试中,这只是Mac OS X上Safari的一个问题,还有许多其他报告对此进行了说明,但我找不到解决方案: 我希望能够通过Sa

我有一个logout.php页面,它结束了用户的会话,运行良好,并完成了以下操作:

会话_start(); session_unset(); 会话_destroy()

我刚刚注意到,在使用Safari进行测试时,当您注销时,可以单击“上一步”按钮返回到上一页,该页需要身份验证,但不会出现提示。如果不输入导航,则无法离开此页面,但它首先不应显示上一页

到目前为止,在我的测试中,这只是Mac OS X上Safari的一个问题,还有许多其他报告对此进行了说明,但我找不到解决方案:

我希望能够通过Safari的“后退”按钮来禁用这种行为,这让我很惊讶

谢谢,
Steve

确保您提供的任何需要验证的页面都使用合适的缓存控制头发送。页面是从浏览器缓存显示的,通过提供明确禁止缓存的缓存控制,您应该能够停止此操作


特别是对于Safari,有一些关于缓存和卸载事件的讨论,您可以使用它们来避免缓存。看起来WebKit在缓存方面确实存在一些复杂问题


hmm我认为这不是您的应用程序的问题,如果我注销并单击“上一步”按钮进入登录页面输入用户名/密码,safari只会在其他浏览器上显示缓存数据。在Safari上,我注销并单击“上一步”按钮,它“记住”上一页(与声音缓存相关),即使会话被破坏,也不会进行身份验证,它应该提示我进行身份验证。如果我只从该页面导航,它会提示我进行身份验证。因为浏览器会缓存该页面。您好,谢谢您的评论。我以前试过,但没有用。我只是再次添加了它们,它仍在加载需要验证的页面。问题似乎出在基于webkit的浏览器上,比如Safari for Mac和iPhone。我添加了几个链接。当您执行“登录、注销、返回”过程时,请尝试使用Safari/Chrome开发人员工具检查浏览器检测到的HTTP头(开发人员工具->资源,单击左侧的页面条目)。非常感谢我将对此进行研究-进一步搜索已使我得出关于onUnload事件等的相同结论。谢谢
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>