0

我有 3 页;

第 1页:具有 AJAX 文件上传器的主页

第 2 页:(来自第 1 页的 AJAX 请求)处理文件上传器,启动会话并将文件名存储在会话中,如果上传了超过 1 个文件,则此页面被调用不止一次。

第 3 页:(来自第 1 页的 AJAX 请求)当第 2 页上传所有文件时,第 1 页向此页面发送请求,以便此页面发送一封电子邮件,其中包含存储在会话中的 2 个文件名,然后尝试清除整个会话,以便在第 1 页的页面刷新时为任何新上传做好准备。

现在我面临的问题是,在第 3 页中,会话没有被清除,所以每次我得到一个两倍大的会话数组,因为它有之前的文件名,以及现在刚刚放入的文件名.

这是我正在使用的代码:

第 1 页:普通 JS 和 Ajax 请求

第2页:

这个实际上设置了会话内的数组

session_start();
send_nosniff_header();
nocache_headers();
//BLA BLA BLA - here is where the actual file uploader code is suppose to be

//Here is the session im setting and storing
if (!isset($_SESSION['arraystuff'])) {
$_SESSION['arraystuff'] = array();
}
$_SESSION['arraystuff'][] =  $uploads_dir.'/'.$filename;

第 3 页:

这个发送一封电子邮件,其中包含存储在会话中的每个文件名

if(isset($_GET['uploadComplete'])){
session_start();
//Get foreach filenames inside session and send email
$_SESSION = array();
session_destroy(); 
}

然而会话没有被清除以便下一个正常工作,因为每次发送电子邮件时,之前会话中的先前文件名也被发送并且没有被清除。

4

2 回答 2

3

unset($_SESSION['arraystuff']);

session_unset();
session_destroy();

在你发送邮件的最后..写下 unser 电子邮件成功消息/变量..

于 2013-09-03T07:54:00.020 回答
1

确保您也在第 3 页开始会话。其次尝试以下操作以清空您的会话。

unset($_SESSION);
于 2013-09-03T07:50:09.913 回答