PHP无法通过AJAX清空$\u会话

PHP无法通过AJAX清空$\u会话,php,Php,我有3页 第1页:包含AJAX文件上传程序的主页面 第2页:(来自第1页的AJAX请求)处理文件上载程序,启动会话并将文件名存储在会话中,如果上载了多个文件,则会多次调用此页面 第3页:(第1页的AJAX请求)当第2页上载所有文件时,第1页向该页发送一个请求,以便该页发送一封包含会话中存储的2个文件名的电子邮件,然后尝试清除整个会话,以便在刷新第1页时准备好任何新的上载 现在我面临的问题是,在第3页中,会话没有被清除,所以每次我都会得到一个两倍大的会话数组,因为它有以前的文件名,还有现在刚刚放进

我有3页

第1页:包含AJAX文件上传程序的主页面

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

第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;
if(isset($_GET['uploadComplete'])){
session_start();
//Get foreach filenames inside session and send email
$_SESSION = array();
session_destroy(); 
}
第3页:

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

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;
if(isset($_GET['uploadComplete'])){
session_start();
//Get foreach filenames inside session and send email
$_SESSION = array();
session_destroy(); 
}

但是,由于每次发送电子邮件时,之前会话中的文件名也会被发送,并且不会被清除,因此下一个会话无法正常工作。

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

unset($_SESSION);

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

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

session_unset();
session_destroy();
在您发送邮件的结尾处..在电子邮件成功消息/Variable..

write
unset($_SESSION['arraystuff'])

session_unset();
session_destroy();

在您发送邮件的结尾处..将其写入unser email success msg/Variable..

我刚刚完成了,每当我刷新页面并再次提交所有内容时,以前的会话仍然存在,新的数据被添加到旧的数据中,当发送电子邮件时,旧的和新的文件名也随之发送。我在第1页添加了一个会话\u start和会话\u destroy和unset,它似乎像trickI刚刚做的那样,每当我刷新页面并再次提交所有内容时,以前的会话仍然存在,新数据被添加到旧数据中,当发送一封电子邮件时,旧文件名和新文件名也随之发送。我在第1页添加了一个session\u start和session\u destroy和unset,这似乎是一个技巧,你应该使AJAX调用同步吗?如果调用来自多个客户端,又会发生什么呢?也许您应该使AJAX调用同步?如果电话来自多个客户,又会发生什么?