Ejemplo n.º 1
0
 function print_imap_server_opts()
 {
     global $conf;
     $data = '';
     $alt_servers = get_alt_servers($conf);
     if (!empty($alt_servers)) {
         $data .= $this->user->str[273] . '<br /><select class="logintext" name="imap_server">';
         $data .= '<option value="0">';
         if (isset($conf['imap_display_name']) && $conf['imap_display_name']) {
             $data .= $conf['imap_display_name'];
         }
         $data .= '</option>';
         foreach ($alt_servers as $i => $vals) {
             if (isset($vals['imap_server'])) {
                 $data .= '<option value="' . $i . '">';
                 if (isset($vals['imap_display_name'])) {
                     if (isset($vals['imap_display_name']) && $vals['imap_display_name']) {
                         $data .= $vals['imap_display_name'];
                     } else {
                         $data .= $vals['imap_server'];
                     }
                 }
                 $data .= '</option>';
             }
         }
         $data .= '</select>';
     }
     return '<div class="alt_server">' . $data . '</div>';
 }
Ejemplo n.º 2
0
 function continue_session()
 {
     global $user;
     global $conf;
     global $imap;
     global $hastymail_version;
     @ini_set('arg_separator.output', '&amp;');
     if ($this->logout) {
         if ($user->use_cookies) {
             @ini_set('session.use_cookies', 1);
             @ini_set('session.use_trans_sid', 0);
             @ini_set('session.cookie_path', $user->cookie_path);
             @ini_set('session.cookie_secure', $user->cookie_secure);
             session_name($this->cookie_name);
         } else {
             @ini_set('session.use_trans_sid', 1);
             @ini_set('session.use_cookies', 0);
             ob_start();
         }
         @session_start();
         $user->user_action->logout_actions();
         $this->logged_in = false;
         if ($user->use_cookies) {
             setcookie($this->cookie_name, '', time() - 42000, $user->cookie_path);
         }
     } else {
         if ($user->use_cookies) {
             @ini_set('session.use_cookies', 1);
             @ini_set('session.use_trans_sid', 0);
             @ini_set('session.cookie_path', $user->cookie_path);
             @ini_set('session.cookie_secure', $user->cookie_secure);
             session_name($this->cookie_name);
         } else {
             @ini_set('session.use_trans_sid', 1);
             @ini_set('session.use_cookies', 0);
             ob_start();
         }
         @session_start();
         if (isset($conf['site_random_session_id']) && $conf['site_random_session_id'] && !isset($_POST['rs']) && (!isset($_GET['page']) || $_GET['page'] != 'inline_image') && !isset($_GET['show_image'])) {
             if (!isset($_SESSION['reload_count'])) {
                 $_SESSION['reload_count'] = 1;
             } else {
                 $_SESSION['reload_count']++;
                 if ($_SESSION['reload_count'] > 2) {
                     $_SESSION['reload_count'] = 1;
                     session_regenerate_id(true);
                 }
             }
         }
     }
     if (!$this->logout && !empty($_SESSION) && isset($_SESSION['user_data']['username'])) {
         if (isset($_SESSION['imap_index']) && $_SESSION['imap_index']) {
             $alt_servers = get_alt_servers($conf);
             if (isset($alt_servers[$_SESSION['imap_index']])) {
                 $vals = $alt_servers[$_SESSION['imap_index']];
                 foreach ($vals as $i => $v) {
                     $name = substr($i, 5);
                     $imap->{$name} = $v;
                 }
             }
         }
         if (isset($_SESSION['user_data']['pass'])) {
             $this->recrypt_pass();
         }
         $this->logged_in = true;
         $this->just_logged_in = false;
         $_SESSION['just_logged_in'] = false;
         if (isset($_SESSION['just_logged_in_redirect'])) {
             unset($_SESSION['just_logged_in_redirect']);
             $_SESSION['just_logged_in'] = true;
         }
     }
     if (isset($_SESSION['imap_index'])) {
         if ($_SESSION['imap_index'] > 0) {
             $tmp_conf = $conf;
             foreach ($tmp_conf as $i => $v) {
                 if (preg_match('/alt_' . $_SESSION['imap_index'] . '/', $i)) {
                     $conf[substr($i, 6)] = $v;
                 }
             }
         }
     }
     if ($this->logged_in) {
         if (isset($_SESSION['hm_version'])) {
             if ($_SESSION['hm_version'] != $hastymail_version) {
                 if (isset($conf['imap_enable_proxyauth']) && $conf['imap_enable_proxyauth']) {
                     $_POST = array('login' => true);
                     $_SESSION = array();
                     $this->check_session();
                     $_SESSION['updated'] = true;
                 } else {
                     $pass_vals = $user->string_decrypt($_SESSION['user_data']['pass']);
                     if (isset($pass_vals[1])) {
                         $_POST = array('user' => $_SESSION['user_data']['username'], 'pass' => $pass_vals[1], 'login' => true);
                         $_SESSION = array();
                         $this->check_session();
                         $_SESSION['updated'] = true;
                     }
                 }
             }
         }
     }
     $_SESSION['hm_version'] = $hastymail_version;
 }