allow_call_time_pass_reference = Off
[squirrelmail.git] / src / redirect.php
index b05b1e21da4018c9c9885a57d109bf092615b5eb..2907ab6d8fb3532e431b5de8d43c84bdfe921eda 100644 (file)
@@ -1,32 +1,16 @@
 <?php
 
 /**
- * redirect.php
- * Derived from webmail.php by Ralf Kraudelt <kraude@wiwi.uni-rostock.de>
- *
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
- * Prevents users from reposting their form data after a successful logout.
- *
- * $Id$
- */
-
-/*****************************************************************/
-/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!!           ***/
-/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION.             ***/
-/***    + Base level indent should begin at left margin, as    ***/
-/***      the require_once below looks.                        ***/
-/***    + All identation should consist of four space blocks   ***/
-/***    + Tab characters are evil.                             ***/
-/***    + all comments should use "slash-star ... star-slash"  ***/
-/***      style -- no pound characters, no slash-slash style   ***/
-/***    + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD      ***/
-/***      ALWAYS USE { AND } CHARACTERS!!!                     ***/
-/***    + Please use ' instead of ", when possible. Note "     ***/
-/***      should always be used in _( ) function calls.        ***/
-/*** Thank you for your help making the SM code more readable. ***/
-/*****************************************************************/
+* redirect.php
+* Derived from webmail.php by Ralf Kraudelt <kraude@wiwi.uni-rostock.de>
+*
+* Copyright (c) 1999-2002 The SquirrelMail Project Team
+* Licensed under the GNU GPL. For full terms see the file COPYING.
+*
+* Prevents users from reposting their form data after a successful logout.
+*
+* $Id$
+*/
 
 require_once('../functions/i18n.php');
 require_once('../functions/strings.php');
@@ -40,39 +24,22 @@ require_once('../functions/page_header.php');
 // Remove slashes if PHP added them
 if (get_magic_quotes_gpc()) {
     global $REQUEST_METHOD;
-    
-    if ($REQUEST_METHOD == "POST") {
+
+    if ($REQUEST_METHOD == 'POST') {
         global $HTTP_POST_VARS;
         RemoveSlashes($HTTP_POST_VARS);
-    } else if ($REQUEST_METHOD == "GET") {
+    } else if ($REQUEST_METHOD == 'GET') {
         global $HTTP_GET_VARS;
         RemoveSlashes($HTTP_GET_VARS);
     }
 }
 
-
-function attachment_common_parse($str, $debug) {
-    global $attachment_common_types, $attachment_common_types_parsed;
-
-    $attachment_common_types_parsed[$str] = true;
-    $types = explode(', ', $str);
-
-    foreach ($types as $val) {
-        // Ignore the ";q=1.0" stuff
-        if (strpos($val, ';') !== false)
-            $val = substr($val, 0, strpos($val, ';'));
-
-        if (! isset($attachment_common_types[$val])) {
-            $attachment_common_types[$val] = true;
-        }
-    }
-}
-
-
 /* Before starting the session, the base URI must be known. Assuming */
 /* that this file is in the src/ subdirectory (or something).        */
-ereg ("(^.*/)[^/]+/[^/]+$", $PHP_SELF, $regs);
-$base_uri = $regs[1];
+if (!function_exists('sqm_baseuri')){
+    require_once('../functions/display_messages.php');
+}
+$base_uri = sqm_baseuri();
 
 header('Pragma: no-cache');
 $location = get_location();
@@ -89,17 +56,12 @@ if (! isset($squirrelmail_language) ||
 }
 set_up_language($squirrelmail_language, true);
 /* Refresh the language cookie. */
-setcookie('squirrelmail_language', $squirrelmail_language, time()+2592000,$base_uri);
+setcookie('squirrelmail_language', $squirrelmail_language, time()+2592000, 
+          $base_uri);
 
 if (!isset($login_username)) {
-    displayHtmlHeader( _("You must be logged in to access this page.") );
-    echo "<BODY BGCOLOR=\"#ffffff\">\n" .
-        "<BR>&nbsp;<BR>\n" .
-        "<CENTER>\n" .
-        '<B>' . _("You must be logged in to access this page.") . "</B><BR>" .
-        '<A HREF="../src/login.php">'  . _("Go to the login page") . "</A>\n" .
-        "</CENTER>\n" .
-        "</BODY></HTML>\n";
+    include_once( '../functions/display_messages.php' );
+    logout_error( _("You must be logged in to access this page.") );    
     exit;
 }
 
@@ -117,21 +79,20 @@ if (!session_is_registered('user_is_logged_in')) {
 
     $imapConnection = sqimap_login($login_username, $key, $imapServerAddress, $imapPort, 0);
     if (!$imapConnection) {
-        displayHtmlHeader( _("There was an error contacting the mail server.") );
-        echo "<body bgcolor=\"#ffffff\">\n".
-            "<br> <br>\n".
-            "<center>\n".
-            '<b>' . _("There was an error contacting the mail server.") . "</b><br>\n".
-            _("Contact your administrator for help.") . "\n".
-            "</center>\n".
-            "</body></html>\n";
+        $errTitle = _("There was an error contacting the mail server.");
+        $errString = $errTitle . "<br>\n".
+                     _("Contact your administrator for help.");
+        include_once( '../functions/display_messages.php' );
+        logout_error( _("You must be logged in to access this page.") );            
         exit;
     } else {
+        $sqimap_capabilities = sqimap_capability($imapConnection);
+       session_register('sqimap_capabilities');
         $delimiter = sqimap_get_delimiter ($imapConnection);
     }
     sqimap_logout($imapConnection);
     session_register('delimiter');
-
+    global $username;    
     $username = $login_username;
     session_register ('username');
     setcookie('key', $key, 0, $base_uri);
@@ -155,12 +116,13 @@ session_register('attachment_common_types_parsed');
 
 $debug = false;
 if (isset($HTTP_SERVER_VARS['HTTP_ACCEPT']) &&
-    !isset($attachment_common_types_parsed[$HTTP_SERVER_VARS['HTTP_ACCEPT']]))
+    !isset($attachment_common_types_parsed[$HTTP_SERVER_VARS['HTTP_ACCEPT']])) {
     attachment_common_parse($HTTP_SERVER_VARS['HTTP_ACCEPT'], $debug);
+}
 if (isset($HTTP_ACCEPT) &&
-    !isset($attachment_common_types_parsed[$HTTP_ACCEPT]))
+    !isset($attachment_common_types_parsed[$HTTP_ACCEPT])) {
     attachment_common_parse($HTTP_ACCEPT, $debug);
-
+}
 
 /* Complete autodetection of Javascript. */
 $javascript_setting = getPref
@@ -181,15 +143,57 @@ if ($javascript_setting != SMPREF_JS_ON){
 /* Update the prefs */
 setPref($data_dir, $username, 'javascript_on', $js_pref);
 
+global $attachments;
+$attachments = unserialize(getPref($data_dir, $username, 'attachments', 0));
 /* Compute the URL to forward the user to. */
-if(isset($rcptemail)) {
-    $redirect_url = 'webmail.php?right_frame=compose.php&rcptaddress=';
-    $redirect_url .= urlencode($rcptemail);
-} else {
-    $redirect_url = 'webmail.php';
-}
+    global $session_expired_location, $session_expired_post;
+    if (isset($session_expired_location) && $session_expired_location) {
+       $compose_new_win = getPref($data_dir, $username, 'compose_new_win', 0);
+       if ($compose_new_win) {
+          $redirect_url = $session_expired_location;
+       } else {
+          $redirect_url = 'webmail.php?right_frame='.urldecode($session_expired_location);
+       }
+       session_unregister('session_expired_location');
+       unset($session_expired_location);
+       if (is_array($attachments)) {
+          session_register('attachments');
+       }
+    } else {
+       if (is_array($attachments)) {
+          $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
+          foreach ($attachments as $attachment) {
+            $attached_file = $hashed_attachment_dir.'/'.$attachment['localfilename'];
+            if (file_exists($attached_file)) {
+                unlink($attached_file);
+            }
+          }
+          removePref($data_dir, $username, 'attachments');
+       }
+       $redirect_url = 'webmail.php';
+    }
 
 /* Send them off to the appropriate page. */
 header("Location: $redirect_url");
 
-?>
+/* --------------------- end main ----------------------- */
+
+function attachment_common_parse($str, $debug) {
+    global $attachment_common_types, $attachment_common_types_parsed;
+
+    $attachment_common_types_parsed[$str] = true;
+    $types = explode(', ', $str);
+
+    foreach ($types as $val) {
+        // Ignore the ";q=1.0" stuff
+        if (strpos($val, ';') !== false)
+            $val = substr($val, 0, strpos($val, ';'));
+
+        if (! isset($attachment_common_types[$val])) {
+            $attachment_common_types[$val] = true;
+        }
+    }
+}
+
+
+?>
\ No newline at end of file