2010-01-12 68 views
3

我正在使用会话变量在会话处于活动状态时存储用户显示设置。元刷新标签“破坏”PHP会话吗?

例如,如果我选择使用会话变量在页面上显示5个项目,则没有问题。我可以手动(f5)刷新页面,仍然可以在页面上看到5个项目。然而,在实施以下元标记自动刷新,每次刷新页面它的时间切换到的3

<meta http-equiv="refresh" content="300"> 

我想到也许这元刷新导致一个新的会话的默认值被创建,因此用户设置完全在图片之外。

有没有人有这种类型的问题的经验 - 这是这种情况,是否有一种已知的方式来实现页面刷新,并仍然保持会话?

+2

你用什么浏览器测试? – 2010-01-12 07:05:57

+0

我没有考虑过使用其他浏览器进行测试,但是Firefox。 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7)Gecko/20091221 Firefox/3.5.7(.NET CLR 3.5.30729) – Structure 2010-01-12 07:06:52

回答

2

从我自己的经验来看,没有,它不应该。除非你在会话超时后刷新它。

是javascript setTimeoutreplace一个替代yuou正在考虑?

<script type="text/javascript"> 
    window.setTimeout('location.replace(location.href)', 300 * 1000); 
</script> 
+0

我发现了这个问题。您的评论促使我实施更多的isset语句来确认会话的状态。我发现用于维护会话的变量没有正确存储,因此会话或多或少地无用。 感谢您的课程更正!为了以防万一,我还实施了Javascript。 – Structure 2010-01-12 07:32:27

+0

哈哈,好的。我不认为我的意思是我的答案。很高兴帮助。 :) – 2010-01-12 07:42:12

0

你可以尝试使用header()从PHP本身发送它。

header("Refresh: 300");