2015-04-01 95 views
1

我有一个php会话变量,我更新它在一个页面,并访问它在不同的页面,当变量达到一个阈值我重置为零,并根据上传的文件数量增加它。php会话变量不更新

问题是,当我重置并重新加载页面时,它达到了阈值,我访问会话变量不更新的文件,并显示零,虽然文件上传。

但实际上,会话变量正在另一页中递增。它只显示两次重新加载后的实际值(增加的值)。

我想知道它为什么会发生。

+8

请告诉我们你的代码。 – Albzi 2015-04-01 10:15:39

+1

没有任何人都可以说的任何代码是“你做它rong”:| – CD001 2015-04-01 10:16:03

回答

1

首先,显示你的问题的代码是至关重要的,但是对于这个特定问题,问题是你在你更新它们的文件中正确使用sessionvariables。会话在页面中的任何内容之前加载,所以当你更新它们时,它们已经被加载,尽管它们已经改变,但它们的值在当前页面中仍然是相同的。 为了防止这种情况,你需要或者转到另一个页面更新会议结束后或将重定向你会改变声明后,如果有必要留在同一个地址,就像这样:

<?php 
if(threshold){ 
$_SESSION['your_session']='your new value'; 
header('LOCATION sample.php'); 
} 
?> 
+0

无论如何,你是正确的,虽然我没有更新它,因为在我访问它的同一个文件中,问题是会话变量首先被加载,并且我无法获得更新后的值而没有重新加载它。所以我从一个PHP文件返回会话变量并通过ajax请求访问它,所以对我来说工作得很好。谢谢你,因为你给我的想法是,服务器代码首先加载,并在客户端,我不能直接得到更新的值。 – 2015-04-09 10:13:00