From da95c4b66975b8010d8da095318ac9e1fce29e1d Mon Sep 17 00:00:00 2001 From: stekkel Date: Fri, 8 Mar 2002 21:27:02 +0000 Subject: [PATCH] changed attachment handling by looking at the compose session_id git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2559 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/compose.php | 123 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 83 insertions(+), 40 deletions(-) diff --git a/src/compose.php b/src/compose.php index 82fa2392..b10cfc87 100644 --- a/src/compose.php +++ b/src/compose.php @@ -30,6 +30,16 @@ if (!isset($attachments)) { session_register('attachments'); } +if (!isset($composesession)) { + $composesession = 0; + session_register('composesession'); +} + +if (!isset($session)) { + $session = "$composesession" +1; + $composesession = $session; +} + if (!isset($mailbox) || $mailbox == '' || ($mailbox == 'None')) { $mailbox = 'INBOX'; } @@ -43,7 +53,7 @@ if (isset($draft)) { $MDN = 'False'; } if (!saveMessageAsDraft($send_to, $send_to_cc, $send_to_bcc, $subject, $body, $reply_id, $MDN)) { - showInputForm(); + showInputForm($session); exit(); } else { $draft_message = _("Draft Email Saved"); @@ -55,7 +65,7 @@ if (isset($draft)) { } else { if ($compose_new_win == '1') { - Header("Location: compose.php?saved_draft=yes"); + Header("Location: compose.php?saved_draft=yes&session=$composesession"); exit(); } else { @@ -71,7 +81,7 @@ if (isset($send)) { if (isset($HTTP_POST_FILES['attachfile']) && $HTTP_POST_FILES['attachfile']['tmp_name'] && $HTTP_POST_FILES['attachfile']['tmp_name'] != 'none') { - $AttachFailure = saveAttachedFiles(); + $AttachFailure = saveAttachedFiles($session); } if (checkInput(false) && !isset($AttachFailure)) { $urlMailbox = urlencode (trim($mailbox)); @@ -117,13 +127,13 @@ if (isset($send)) { $MDN = False; // we are not sending a mdn response if (! isset($mailprio)) { $Result = sendMessage($send_to, $send_to_cc, $send_to_bcc, - $subject, $body, $reply_id, $MDN); + $subject, $body, $reply_id, $MDN, '', $session); } else { $Result = sendMessage($send_to, $send_to_cc, $send_to_bcc, - $subject, $body, $reply_id, $MDN, $mailprio); + $subject, $body, $reply_id, $MDN, $mailprio, $session); } if (! $Result) { - showInputForm(); + showInputForm($session); exit(); } if ( isset($delete_draft)) { @@ -132,7 +142,7 @@ if (isset($send)) { exit(); } if ($compose_new_win == '1') { - Header("Location: compose.php?mail_sent=yes"); + Header("Location: compose.php?mail_sent=yes&session=$composesession"); } else { Header("Location: right_main.php?mailbox=$urlMailbox&sort=$sort". @@ -155,7 +165,7 @@ if (isset($send)) { } checkInput(true); - showInputForm(); + showInputForm($session); /* sqimap_logout($imapConnection); */ } } elseif (isset($html_addr_search_done)) { @@ -188,12 +198,12 @@ if (isset($send)) { } } } - showInputForm(); + showInputForm($session); } elseif (isset($html_addr_search)) { if (isset($HTTP_POST_FILES['attachfile']) && $HTTP_POST_FILES['attachfile']['tmp_name'] && $HTTP_POST_FILES['attachfile']['tmp_name'] != 'none') { - if (saveAttachedFiles()) { + if (saveAttachedFiles($session)) { plain_error_message(_("Could not move/copy file. File not attached"), $color); } } @@ -203,7 +213,7 @@ if (isset($send)) { */ include_once('./addrbook_search_html.php'); } elseif (isset($attach)) { - if (saveAttachedFiles()) { + if (saveAttachedFiles($session)) { plain_error_message(_("Could not move/copy file. File not attached"), $color); } if ($compose_new_win == '1') { @@ -212,7 +222,7 @@ if (isset($send)) { else { displayPageHeader($color, $mailbox); } - showInputForm(); + showInputForm($session); } elseif (isset($sigappend)) { $idents = getPref($data_dir, $username, 'identities', 0); @@ -230,7 +240,7 @@ elseif (isset($sigappend)) { } else { displayPageHeader($color, $mailbox); } - showInputForm(); + showInputForm($session); } elseif (isset($do_delete)) { if ($compose_new_win == '1') { compose_Header($color, $mailbox); @@ -244,12 +254,33 @@ elseif (isset($sigappend)) { foreach($delete as $index) { $attached_file = $hashed_attachment_dir . '/' . $attachments[$index]['localfilename']; - unlink ($attached_file); - unset ($attachments[$index]); + unlink ($attached_file); + unset ($attachments[$index]); } } - showInputForm(); + showInputForm($session); + +} elseif (isset($attachedmessages)) { + + /* + * This handles the case if we attache message + */ + $imapConnection = sqimap_login($username, $key, $imapServerAddress, + $imapPort, 0); + if ($compose_new_win == '1') { + compose_Header($color, $mailbox); + } + else { + displayPageHeader($color, $mailbox); + } + + $newmail = true; + + newMail(); + showInputForm($session); + sqimap_logout($imapConnection); + } else { /* * This handles the default case as well as the error case @@ -266,18 +297,18 @@ elseif (isset($sigappend)) { $newmail = true; - ClearAttachments(); + ClearAttachments($session); if (isset($forward_id) && $forward_id && isset($ent_num) && $ent_num) { - getAttachments(0); + getAttachments(0, $session); } if (isset($draft_id) && $draft_id && isset($ent_num) && $ent_num) { - getAttachments(0); + getAttachments(0, $session); } - newMail(); - showInputForm(); + newMail($session); + showInputForm($session); sqimap_logout($imapConnection); } @@ -291,7 +322,7 @@ exit(); function newMail () { global $forward_id, $imapConnection, $msg, $ent_num, $body_ary, $body, $reply_id, $send_to, $send_to_cc, $mailbox, $send_to_bcc, $editor_size, - $draft_id, $use_signature; + $draft_id, $use_signature, $composesession; $send_to = decodeHeader($send_to, false); $send_to_cc = decodeHeader($send_to_cc, false); @@ -414,7 +445,7 @@ function newMail () { } /* function newMail() */ -function getAttachments($message) { +function getAttachments($message, $session) { global $mailbox, $attachments, $attachment_dir, $imapConnection, $ent_num, $forward_id, $draft_id, $username; @@ -450,6 +481,8 @@ function getAttachments($message) { $newAttachment['remotefilename'] = $filename; $newAttachment['type'] = strtolower($message->header->type0 . '/' . $message->header->type1); + $newAttachment['id'] = strtolower($message->header->id); + $newAttachment['session'] = $session; /* Write Attachment to file */ $fp = fopen ("$hashed_attachment_dir/$localfilename", 'w'); @@ -462,13 +495,13 @@ function getAttachments($message) { } } else { for ($i = 0; $i < count($message->entities); $i++) { - getAttachments($message->entities[$i]); + getAttachments($message->entities[$i], $session); } } return; } -function showInputForm () { +function showInputForm ($session) { global $send_to, $send_to_cc, $reply_subj, $forward_subj, $body, $passed_body, $color, $use_signature, $signature, $prefix_sig, $editor_size, $attachments, $subject, $newmail, @@ -506,6 +539,10 @@ function showInputForm () { if (isset($delete_draft)) { echo '\n"; } + if (isset($session)) { + echo '\n"; + } + if ($saved_draft == 'yes') { echo '
'. _("Draft Saved").'
'; } @@ -642,10 +679,12 @@ function showInputForm () { ' ' . ''; foreach ($attachments as $key => $info) { - $attached_file = "$hashed_attachment_dir/$info[localfilename]"; - echo '\n" . - $info['remotefilename'] . ' - ' . $info['type'] . ' (' . - show_readable_size(filesize($attached_file)) . ")
\n"; + if ($info['session'] == $session) { + $attached_file = "$hashed_attachment_dir/$info[localfilename]"; + echo '\n" . + $info['remotefilename'] . ' - ' . $info['type'] . ' (' . + show_readable_size(filesize($attached_file)) . ")
\n"; + } } echo '