2011-10-14 16 views
0

我需要一个“后退”按钮,但不使用Javascript。我已经想到了一种可能的方法:模拟PHP中没有javascript的后退按钮

使用这将让它在每次加载每个页面上的每一次更新会话变量(例如$_SESSION['http_referer']),

  • 保存它的内容到一个变量(例如$lastPage) (在当前页面进一步使用 )

  • 分配给它的$_SERVER['REQUEST_URI']

0的值

但我不确定这是多么有效率(或低效率)。它至少是正确的吗?

+0

我遇到上述想法时遇到的一个问题是(至少在Chrome中),当您使用浏览器的后退按钮时,它会从缓存中拉出页面。这意味着会话数据会刷新,然后将所有内容都拧紧。 – Ben

+0

这是如何“模拟后退按钮?”你对“模拟后退按钮”的定义是什么?为什么没有JavaScript? **为什么你需要伪造它?** –

+0

您的用户是否使用了一些奇怪的自定义浏览器,但没有真正的后退按钮? – ceejayoz

回答

2

如果用户只能回到您的网站,最好跟踪他们访问的网页,而不是_SERVER[HTTP_REFERER]。当用户点击“后退”按钮时,您可以重定向到堆栈顶部的页面(页面在加载完成后添加到堆栈中,所以“后退”按钮应该使用前一页)。请注意,这与真正的后退按钮完全不同。相反,它会作为新页面添加到真实的历史记录中。

另请注意,在脚本执行期间写入_SERVER[REQUEST_URI]什么也不做。

+0

那么,我每次加载页面时都会考虑做类似$ _SERVER ['back'] = $ _SERVER ['REQUEST_URI']的事情,而不是其他方式(事实上,我不认为修改SERVER变量甚至可能)。但我没有考虑过“真正的历史”问题。 – federicot