- fixed bug when deleting last message, sends you to previous list
[squirrelmail.git] / src / download.php
index c754caf030bd2c9ff1dec353dcc310e3e32fca3a..bb7adb366c16b47cdcfd376184ad5da3ee1cd331 100644 (file)
@@ -9,8 +9,6 @@
     **  Also allows displaying of attachments when possible.
     **/
 
-   session_start();
-
    if (!isset($config_php))
       include("../config/config.php");
    if (!isset($strings_php))
    include("../src/load_prefs.php");
 
    function viewText($color, $body, $id, $entid, $mailbox, $type1, $wrap_at) {
+      global $where, $what, $charset;
       displayPageHeader($color, "None");
 
       echo "<BR><TABLE WIDTH=90% BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER><TR><TD BGCOLOR=\"$color[0]\">";
       echo "<B><CENTER>";
       echo _("Viewing a text attachment") . " - ";
-      echo "<a href=\"read_body.php?mailbox=".urlencode($mailbox)."&passed_id=$id&startMessage=$startMessage&show_more=0\">". _("View message") . "</a>";
+      if ($where && $what) {
+         // from a search
+         echo "<a href=\"read_body.php?mailbox=".urlencode($mailbox)."&passed_id=$id&where=".urlencode($where)."&what=".urlencode($what)."\">". _("View message") . "</a>";
+      } else {   
+         echo "<a href=\"read_body.php?mailbox=".urlencode($mailbox)."&passed_id=$id&startMessage=$startMessage&show_more=0\">". _("View message") . "</a>";
+      }   
       echo "</CENTER></B>";
       echo "</TD></TR><TR><TD BGCOLOR=\"$color[4]\">";
       $urlmailbox = urlencode($mailbox);
@@ -42,7 +46,7 @@
       if ($type1 == "html")
          echo $body;
       else
-         echo translateText($body, $wrap_at);
+         echo translateText($body, $wrap_at, $charset);
 
       echo "</TT></TD></TR></TABLE>";
    }
@@ -63,6 +67,7 @@
    $header = $message->header;
    $body = mime_fetch_body($imapConnection, $passed_id, $passed_ent_id);
 
+   $charset = $header->charset;
    $type0 = $header->type0;
    $type1 = $header->type1;
    $filename = decodeHeader($header->filename);
       switch($type0) {
          case "text":
             $body = decodeBody($body, $header->encoding);
-            header("Content-type: application/octet-stream; name=\"$filename\"");
             header("Content-Disposition: attachment; filename=\"$filename\"");
+            header("Content-type: application/octet-stream; name=\"$filename\"");
             if ($type1 == "plain") {
                echo _("Subject") . ": " . decodeHeader(stripslashes($top_header->subject)) . "\n";
                echo "   " . _("From") . ": " . decodeHeader(stripslashes($top_header->from)) . "\n";
             break;
          default:
             $body = decodeBody($body, $header->encoding);
-            header("Content-type: application/octet-stream; name=\"$filename\"");
             header("Content-Disposition: attachment; filename=\"$filename\"");
+            header("Content-type: application/octet-stream; name=\"$filename\"");
             echo $body;
             break;
       }
             break;
          default:
             $body = decodeBody($body, $header->encoding);
-            header("Content-type: $type0/$type1; name=\"$filename\"");
             header("Content-Disposition: attachment; filename=\"$filename\"");
+            header("Content-type: $type0/$type1; name=\"$filename\"");
             echo $body;
             break;
       }