$ _SESSION变量不会更新每次迭代

时间:2012-12-14 23:40:35

标签: php

所以我每次迭代都会执行这段代码。迭代不是普通循环,而是一系列ajax请求迭代的一部分。第一个ajax请求确定分配给例如$ _SESSION ['filename']的文件名,然后将此变量推入和数组等。现在,当我处理多个文件时会出现问题。

经常会发生一个生成的文件名被复制并插入到数据库中,而不应该这样做。

第一个回调函数:

    case 'upload':
...
$_SESSION['upload_filename'] = random_filename($alphas).'.'.$fileExt;
...
break;

第二个回调函数:

    case 'insert_db':
array_push($someGlobalArray, $_SESSION['upload_filename']);
insert($_SESSION['upload_filename']);
break;

正如我所说的那样,70%的时间都会正确生成新的文件名。我不确定为什么前一个“迭代”中的旧文件名仍然存在且$ _SESSION ['filename']不包含新文件名。我已尝试在第二个回调函数中的insert()之后取消设置文件名,但这会导致一个问题,即没有文件可用于推入数组或插入数据库,因为我认为它之前未被设置?我在插入()后尝试了sleep(2)然后取消设置但没有帮助。

以下是更多代码:http://pastebin.com/g4fereQx

2 个答案:

答案 0 :(得分:0)

我最好的猜测是你的代码可能没有执行你认为的确切顺序。 很难说你发布的片段很难说。

答案 1 :(得分:-1)

你可以展示一些你的代码,比如发送数据的ajax调用等。我知道我以前遇到的问题是我没有在我的ajax调用中设置async:false,所以它会尝试处理并处理尚未正确设置的信息