PHP无法通过AJAX清空$_SESSION

  • 本文关键字:清空 SESSION AJAX PHP php
  • 更新时间 :
  • 英文 :


我有3页;

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

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

第3页:(来自第1页的AJAX请求)当第2页上传所有文件时,第1页向该页发送请求,以便该页发送一封包含会话中存储的两个文件名的电子邮件,然后尝试清除整个会话,以便在第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(); 
}

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

写入unset($_SESSION['arraystuff']);

session_unset();
session_destroy();

在你发邮件的最后。。写它unser电子邮件成功消息/variable。。

确保您也在第3页启动会话。其次,尝试以下方法清空您的会话。

unset($_SESSION);

最新更新