alecpl
2008-09-19 ea373f65738ff730a6e91f15bfa7cc076e524d3c
program/include/rcmail.php
@@ -728,7 +728,9 @@
      if (!$valid || ($_SERVER['REQUEST_METHOD']!='POST' && $now - $_SESSION['auth_time'] > 300)) {
        $_SESSION['last_auth'] = $_SESSION['auth_time'];
        $_SESSION['auth_time'] = $now;
        setcookie('sessauth', $this->get_auth_hash(session_id(), $now));
        $cookie = session_get_cookie_params();
        setcookie('sessauth', $this->get_auth_hash(session_id(), $now), 0, $cookie['path'],
                  $cookie['domain'], $_SERVER['HTTPS'] && ($_SERVER['HTTPS']!='off'));
      }
    }
    else {
@@ -750,13 +752,6 @@
   */
  public function kill_session()
  {
    $user_prefs = $this->user->get_prefs();
    if ((isset($_SESSION['sort_col']) && $_SESSION['sort_col'] != $user_prefs['message_sort_col']) ||
        (isset($_SESSION['sort_order']) && $_SESSION['sort_order'] != $user_prefs['message_sort_order'])) {
      $this->user->save_prefs(array('message_sort_col' => $_SESSION['sort_col'], 'message_sort_order' => $_SESSION['sort_order']));
    }
    $_SESSION = array('language' => $this->user->language, 'auth_time' => time(), 'temp' => true);
    setcookie('sessauth', '-del-', time() - 60);
    $this->user->reset();
@@ -898,17 +893,22 @@
  {
    if (!is_array($p))
      $p = array('_action' => @func_get_arg(0));
    if ($p['task'] && in_array($p['task'], rcmail::$main_tasks))
      $url = './?_task='.$p['task'];
    else
      $url = $this->comm_path;
    if (!$p['task'] || !in_array($p['task'], rcmail::$main_tasks))
      $p['task'] = $this->task;
    $p['_task'] = $p['task'];
    unset($p['task']);
    foreach ($p as $par => $val)
      if (isset($val))
        $url .= '&'.urlencode($par).'='.urlencode($val);
    $url = './';
    $delm = '?';
    foreach (array_reverse($p) as $par => $val)
    {
      if (!empty($val)) {
        $url .= $delm.urlencode($par).'='.urlencode($val);
        $delm = '&';
      }
    }
    return $url;
  }
}