rg=0 broke some functionality that plugins relied on. fix 682962
[squirrelmail.git] / src / redirect.php
index bcc939e256a8bc5b37648b4e6112973abcc992db..6ed15fc940de59c6979232c32cc84c4b822447b1 100644 (file)
@@ -4,7 +4,7 @@
 * redirect.php
 * Derived from webmail.php by Ralf Kraudelt <kraude@wiwi.uni-rostock.de>
 *
-* Copyright (c) 1999-2002 The SquirrelMail Project Team
+* Copyright (c) 1999-2003 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.
@@ -53,22 +53,13 @@ sqsession_unregister ('user_is_logged_in');
 sqsession_register ($base_uri, 'base_uri');
 
 /* get globals we me need */
-if (isset($_POST['login_username'])) {
-    $login_username = $_POST['login_username'];
-}
-if (!isset($_COOKIE['squirrelmail_language']) ||
-    $squirrelmail_language == '' ) {
-    $squirrelmail_language = $squirrelmail_default_language;
-}
-else {
-    $squirrelmail_language = $_COOKIE['squirrelmail_language'];
-}
-if (isset($_POST['secretkey'])) {
-    $secretkey = $_POST['secretkey'];
-}
-if (isset($_POST['js_autodetect_results'])) {
-    $js_autodetect_results = $_POST['js_autodetect_results'];
+sqGetGlobalVar('login_username', $login_username);
+sqGetGlobalVar('secretkey', $secretkey);
+sqGetGlobalVar('js_autodetect_results', $js_autodetect_results);
+if(!sqGetGlobalVar('squirrelmail_language', $squirrelmail_language) || $squirrelmail_language == '') {
+       $squirrelmail_language = $squirrelmail_default_language;
 }
+
 /* end of get globals */
 
 set_up_language($squirrelmail_language, true);
@@ -129,10 +120,6 @@ sqsession_register($attachment_common_types_parsed, 'attachment_common_types_par
 
 $debug = false;
 
-if (isset($_SERVER['HTTP_ACCEPT']) &&
-    !isset($attachment_common_types_parsed[$_SERVER['HTTP_ACCEPT']])) {
-    attachment_common_parse($_SERVER['HTTP_ACCEPT'], $debug);
-}
 if (isset($_SERVER['HTTP_ACCEPT']) &&
     !isset($attachment_common_types_parsed[$_SERVER['HTTP_ACCEPT']])) {
     attachment_common_parse($_SERVER['HTTP_ACCEPT'], $debug);
@@ -158,23 +145,18 @@ if ($javascript_setting != SMPREF_JS_ON){
 setPref($data_dir, $username, 'javascript_on', $js_pref);
 
 /* Compute the URL to forward the user to. */
-    if (isset($_SESSION['session_expired_location'])) {
-       $session_expired_location= $_SESSION['session_expired_location'];
-    } else {
-       $session_expired_location=false;
-    }
-    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);
-       }
-       sqsession_unregister('session_expired_location');
-       unset($session_expired_location);
-    } else {
-       $redirect_url = 'webmail.php';
+$redirect_url = 'webmail.php';
+
+if ( sqgetGlobalVar('session_expired_location', $session_expired_location, SQ_SESSION) ) {
+    sqsession_unregister('session_expired_location');
+    $compose_new_win = getPref($data_dir, $username, 'compose_new_win', 0);
+    if ($compose_new_win) {
+        $redirect_url = $session_expired_location;
+    } elseif ( strpos($session_expired_location, 'webmail.php') === FALSE ) {
+        $redirect_url = 'webmail.php?right_frame='.urldecode($session_expired_location);
     }
+    unset($session_expired_location);
+}
 
 /* Write session data and send them off to the appropriate page. */
 session_write_close();
@@ -186,7 +168,15 @@ function attachment_common_parse($str, $debug) {
     global $attachment_common_types, $attachment_common_types_parsed;
 
     $attachment_common_types_parsed[$str] = true;
-    $types = explode(', ', $str);
+    
+    /* 
+     * Replace ", " with "," and explode on that as Mozilla 1.x seems to  
+     * use "," to seperate whilst IE, and earlier versions of Mozilla use
+     * ", " to seperate
+     */
+    
+    $str = str_replace( ', ' , ',' , $str );
+    $types = explode(',', $str);
 
     foreach ($types as $val) {
         // Ignore the ";q=1.0" stuff