Fixed vertical alignment of envelope attributes (which I broke last
[squirrelmail.git] / src / redirect.php
index 4d0a02ea75dcd67ef0b34b56557c966155c366cc..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-2001 The Squirrelmail Development 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');
@@ -35,30 +19,27 @@ require_once('../functions/prefs.php');
 require_once('../functions/imap.php');
 require_once('../functions/plugin.php');
 require_once('../functions/constants.php');
-
-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;
-        }
+require_once('../functions/page_header.php');
+
+// Remove slashes if PHP added them
+if (get_magic_quotes_gpc()) {
+    global $REQUEST_METHOD;
+
+    if ($REQUEST_METHOD == 'POST') {
+        global $HTTP_POST_VARS;
+        RemoveSlashes($HTTP_POST_VARS);
+    } else if ($REQUEST_METHOD == 'GET') {
+        global $HTTP_GET_VARS;
+        RemoveSlashes($HTTP_GET_VARS);
     }
 }
 
-
 /* 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();
@@ -75,16 +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)) {
-    echo "<HTML><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;
 }
 
@@ -102,20 +79,20 @@ if (!session_is_registered('user_is_logged_in')) {
 
     $imapConnection = sqimap_login($login_username, $key, $imapServerAddress, $imapPort, 0);
     if (!$imapConnection) {
-        echo "<html><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);
@@ -139,36 +116,84 @@ 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. */
-checkForPrefs($data_dir, $username);
-$javascript_setting = getPref($data_dir, $username, 'javascript_setting', SMPREF_JS_AUTODETECT);
-$js_autodetect_results = (isset($js_autodetect_results) ? $js_autodetect_results : SMPREF_JS_OFF);
-if ($javascript_setting == SMPREF_JS_AUTODETECT) {
-    if ($js_autodetect_results == SMPREF_JS_ON) {
-        setPref($data_dir, $username, 'javascript_on', SMPREF_JS_ON);
+$javascript_setting = getPref
+    ($data_dir, $username, 'javascript_setting', SMPREF_JS_AUTODETECT);
+$js_autodetect_results = (isset($js_autodetect_results) ?
+    $js_autodetect_results : SMPREF_JS_OFF);
+/* See if it's set to "Always on" */
+$js_pref = SMPREF_JS_ON;
+if ($javascript_setting != SMPREF_JS_ON){
+    if ($javascript_setting == SMPREF_JS_AUTODETECT) {
+        if ($js_autodetect_results == SMPREF_JS_OFF) {
+            $js_pref = SMPREF_JS_OFF;
+        }
     } else {
-        setPref($data_dir, $username, 'javascript_on', SMPREF_JS_OFF);
+        $js_pref = SMPREF_JS_OFF;
     }
-} else {
-    setPref($data_dir, $username, 'javascript_on', SMPREF_JS_OFF);
 }
+/* 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