If mailto: string isn't double URL encoded, the values don't correctly get
[squirrelmail.git] / src / redirect.php
index 4ffa1bae6aaf3a2db4ff8bf965c11541f1f2cbd0..9a9a0086d37dce76a0ba4077f8eb2bf73a87c454 100644 (file)
@@ -4,16 +4,19 @@
 * redirect.php
 * Derived from webmail.php by Ralf Kraudelt <kraude@wiwi.uni-rostock.de>
 *
-* Copyright (c) 1999-2003 The SquirrelMail Project Team
+* Copyright (c) 1999-2005 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$
+* @version $Id$
 * @package squirrelmail
 */
 
-/** Path for SquirrelMail required files. */
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
 define('SM_PATH','../');
 
 /* SquirrelMail required files. */
@@ -46,9 +49,8 @@ sqsession_register ($base_uri, 'base_uri');
 /* get globals we me need */
 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;
+    $squirrelmail_language = $squirrelmail_default_language;
 }
 if (!sqgetGlobalVar('mailto', $mailto)) {
     $mailto = '';
@@ -58,12 +60,12 @@ if (!sqgetGlobalVar('mailto', $mailto)) {
 
 set_up_language($squirrelmail_language, true);
 /* Refresh the language cookie. */
-setcookie('squirrelmail_language', $squirrelmail_language, time()+2592000, 
+setcookie('squirrelmail_language', $squirrelmail_language, time()+2592000,
           $base_uri);
 
 if (!isset($login_username)) {
     include_once(SM_PATH .  'functions/display_messages.php' );
-    logout_error( _("You must be logged in to access this page.") );    
+    logout_error( _("You must be logged in to access this page.") );
     exit;
 }
 
@@ -120,23 +122,7 @@ if ( sqgetGlobalVar('HTTP_ACCEPT', $http_accept, SQ_SERVER) &&
 }
 
 /* Complete autodetection of Javascript. */
-$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 {
-        $js_pref = SMPREF_JS_OFF;
-    }
-}
-/* Update the prefs */
-setPref($data_dir, $username, 'javascript_on', $js_pref);
+checkForJavascript();
 
 /* Compute the URL to forward the user to. */
 $redirect_url = $location . '/webmail.php';
@@ -155,7 +141,7 @@ if ( sqgetGlobalVar('session_expired_location', $session_expired_location, SQ_SE
 }
 if($mailto != '') {
     $redirect_url  = $location . '/webmail.php?right_frame=compose.php&mailto=';
-    $redirect_url .= $mailto;
+    $redirect_url .= urlencode($mailto);
 }
 
 /* Write session data and send them off to the appropriate page. */
@@ -168,13 +154,13 @@ function attachment_common_parse($str, $debug) {
     global $attachment_common_types, $attachment_common_types_parsed;
 
     $attachment_common_types_parsed[$str] = true;
-    
-    /* 
-     * Replace ", " with "," and explode on that as Mozilla 1.x seems to  
+
+    /*
+     * 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);
 
@@ -187,8 +173,7 @@ function attachment_common_parse($str, $debug) {
             $attachment_common_types[$val] = true;
         }
     }
-    $_SESSION['attachment_common_types'] = $attachment_common_types;
+    sqsession_register($attachment_common_types, 'attachment_common_types');
 }
 
-
 ?>