3 ページあります。
ページ 1: AJAX ファイル アップローダがあるメイン ページ
ページ 2: (ページ 1 からの AJAX 要求) ファイル アップローダーを処理し、セッションを開始して、ファイル名をセッションに保存します。複数のファイルがアップロードされた場合、このページは複数回呼び出されます。
ページ 3: (ページ 1 からの AJAX リクエスト) ページ 2 がすべてのファイルをアップロードすると、ページ 1 がこのページにリクエストを送信するため、このページはセッションに保存された 2 つのファイル名を含む電子メールを送信し、その後、これにより、ページ 1 のページ更新時に新しいアップロードの準備が整います。
今私が直面している問題は、ページ 3 でセッションがクリアされていないことです。そのため、以前のファイル名と現在そこに入れられたばかりのファイル名があるため、毎回セッション配列が 2 倍の大きさになります。 .
私が使用しているコードは次のとおりです。
ページ 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();
}
ただし、電子メールが送信されるたびに、前のセッションの以前のファイル名も送信され、クリアされないため、次のセッションが正常に機能するためにセッションはクリアされません。