global.php
[squirrelmail.git] / src / redirect.php
index 52b2083839b4521dbac47f2e685ef59a85f6964d..826e21dec05a057f0cccbfd24fca42f0d9714fea 100644 (file)
@@ -20,15 +20,16 @@ require_once('../functions/imap.php');
 require_once('../functions/plugin.php');
 require_once('../functions/constants.php');
 require_once('../functions/page_header.php');
+require_once('../functions/global.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);
     }
@@ -36,8 +37,10 @@ if (get_magic_quotes_gpc()) {
 
 /* 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();
@@ -54,17 +57,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;
 }
 
@@ -82,21 +80,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);
@@ -120,12 +117,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
@@ -146,13 +144,35 @@ 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");
@@ -177,4 +197,4 @@ function attachment_common_parse($str, $debug) {
 }
 
 
-?>
+?>
\ No newline at end of file