“网页已过期”PHP中的$ _SESSIONS

时间:2009-04-27 17:25:12

标签: php session

在我的网络应用程序中,我正在使用$_SESSIONS但有时,当用户点击退格键时,他会得到:

  

网页已过期

消息。

为什么会这样?我该怎么做才能避免这种情况?

3 个答案:

答案 0 :(得分:6)

这与$_SESSION变量没有任何关系,它与您使用POST方法在页面之间传输信息有关。如果你想避免它,你需要使用GET方法而不是POST。

答案 1 :(得分:2)

它还与发送到浏览器的缓存控制指令有关。 请查看http://de.php.net/manual/en/session.configuration.php#ini.session.cache-limiterhttp://shiflett.org/articles/how-to-avoid-page-has-expired-warnings,详细了解缓存设置。

http://shiflett.org/articles/how-to-avoid-page-has-expired-warnings

回顾

要避免“Page Has Expired”警告,请将session.cache_limiter设置为private,并确保使用POST方法的任何表单都提交到将用户重定向到其他URL的中间处理页面。

答案 2 :(得分:2)

像Chad说的那样,这是返回到POST请求结果的页面的结果。就像评论所说的那样,你不能只用GET取代POST,因为出于各种原因这是一个坏主意。

但是,您可以将两者结合起来:让请求成为POST,但发出一个Location头重定向,然后浏览器将作为GET执行。对于用户来说,这看起来像是一个操作,但是对于浏览器来说,它将是一个POST后跟一个GET,这有效地消除了这个问题。