我有一个php会话变量,我在页面中更新它并在不同页面中访问它,当变量达到阈值时我将其重置为零并根据上传的文件数量递增它。
问题是当我重置并重新加载页面时,我访问会话变量未更新的文件达到阈值,并且文件上传后显示为零。
但实际上会话变量在另一页中递增。它仅在重新加载两次后显示实际值(值递增)。
我想知道为什么会这样。
答案 0 :(得分:2)
首先,显示您的问题代码至关重要,但对于这一特定问题,问题是您在更新它们的文件中使用了session
variables
。会话在页面中的任何内容之前加载,因此,当您更新它们时,它们已经加载,虽然它们已经更改,但它们的值在当前页面中仍然相同。
为了防止这种情况,您需要在更新会话后转到另一个页面,或者在会话更改语句之后放置重定向,如果有必要保留在同一地址中,如下所示:
<?php
if(threshold){
$_SESSION['your_session']='your new value';
header('LOCATION sample.php');
}
?>