Replace all session_start() calls with sqsession_is_active(). The latter
[squirrelmail.git] / src / redirect.php
index 6ed15fc940de59c6979232c32cc84c4b822447b1..6bdff659d75063eb6e04219530f93e52df14992e 100644 (file)
@@ -16,6 +16,7 @@
 define('SM_PATH','../');
 
 /* SquirrelMail required files. */
+require_once(SM_PATH . 'functions/global.php');
 require_once(SM_PATH . 'functions/i18n.php');
 require_once(SM_PATH . 'functions/strings.php');
 require_once(SM_PATH . 'config/config.php');
@@ -24,17 +25,6 @@ require_once(SM_PATH . 'functions/imap.php');
 require_once(SM_PATH . 'functions/plugin.php');
 require_once(SM_PATH . 'functions/constants.php');
 require_once(SM_PATH . 'functions/page_header.php');
-require_once(SM_PATH . 'functions/global.php');
-
-// Remove slashes if PHP added them
-$REQUEST_METHOD = $_SERVER['REQUEST_METHOD'];
-if (get_magic_quotes_gpc()) {
-    if ($REQUEST_METHOD == 'POST') {
-        RemoveSlashes($_POST);
-    } else if ($REQUEST_METHOD == 'GET') {
-        RemoveSlashes($_GET);
-    }
-}
 
 /* Before starting the session, the base URI must be known. Assuming */
 /* that this file is in the src/ subdirectory (or something).        */
@@ -47,7 +37,7 @@ header('Pragma: no-cache');
 $location = get_location();
 
 session_set_cookie_params (0, $base_uri);
-session_start();
+sqsession_is_active();
 
 sqsession_unregister ('user_is_logged_in');
 sqsession_register ($base_uri, 'base_uri');
@@ -59,6 +49,9 @@ sqGetGlobalVar('js_autodetect_results', $js_autodetect_results);
 if(!sqGetGlobalVar('squirrelmail_language', $squirrelmail_language) || $squirrelmail_language == '') {
        $squirrelmail_language = $squirrelmail_default_language;
 }
+if (!sqgetGlobalVar('mailto', $mailto)) {
+    $mailto = '';
+}
 
 /* end of get globals */
 
@@ -68,7 +61,7 @@ setcookie('squirrelmail_language', $squirrelmail_language, time()+2592000,
           $base_uri);
 
 if (!isset($login_username)) {
-    include_once( '../functions/display_messages.php' );
+    include_once(SM_PATH .  'functions/display_messages.php' );
     logout_error( _("You must be logged in to access this page.") );    
     exit;
 }
@@ -120,9 +113,9 @@ 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 ( sqgetGlobalVar('HTTP_ACCEPT', $http_accept, SQ_SERVER) &&
+    !isset($attachment_common_types_parsed[$http_accept]) ) {
+    attachment_common_parse($http_accept, $debug);
 }
 
 /* Complete autodetection of Javascript. */
@@ -145,18 +138,24 @@ if ($javascript_setting != SMPREF_JS_ON){
 setPref($data_dir, $username, 'javascript_on', $js_pref);
 
 /* Compute the URL to forward the user to. */
-$redirect_url = 'webmail.php';
+$redirect_url = $location . '/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) {
+        // do not prefix $location here because $session_expired_location is set to PHP_SELF
+        // of the last page
         $redirect_url = $session_expired_location;
     } elseif ( strpos($session_expired_location, 'webmail.php') === FALSE ) {
-        $redirect_url = 'webmail.php?right_frame='.urldecode($session_expired_location);
+        $redirect_url = $location.'/webmail.php?right_frame='.urldecode($session_expired_location);
     }
     unset($session_expired_location);
 }
+if($mailto != '') {
+    $redirect_url  = $location . '/webmail.php?right_frame=compose.php&mailto=';
+    $redirect_url .= $mailto;
+}
 
 /* Write session data and send them off to the appropriate page. */
 session_write_close();