thomascube
2008-09-21 ae2fe663889a87fe594d82a1789dc98e9cb01904
Save posted config in session for later download

3 files modified
31 ■■■■■ changed files
installer/config.php 4 ●●●● patch | view | raw | blame | history
installer/index.php 18 ●●●●● patch | view | raw | blame | history
installer/rcube_install.php 9 ●●●●● patch | view | raw | blame | history
installer/config.php
@@ -30,10 +30,10 @@
  $textbox = new html_textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile"));
  
  echo '<div><em>main.inc.php (<a href="index.php?_getfile=main">download</a>)</em></div>';
  echo $textbox->show($RCI->create_config('main'));
  echo $textbox->show(($_SESSION['main.inc.php'] = $RCI->create_config('main')));
  
  echo '<div style="margin-top:1em"><em>db.inc.php (<a href="index.php?_getfile=db">download</a>)</em></div>';
  echo $textbox->show($RCI->create_config('db'));
  echo $textbox->show($_SESSION['db.inc.php'] = $RCI->create_config('db'));
  echo '<p class="hint">Of course there are more options to configure.
    Have a look at the config files or visit <a href="http://trac.roundcube.net/wiki/Howto_Config">Howto_Config</a> to find out.</p>';
installer/index.php
@@ -31,12 +31,18 @@
$RCI = rcube_install::get_instance();
$RCI->load_config();
if (isset($_GET['_getfile']) && in_array($_GET['_getfile'], array('main', 'db')))
{
  header('Content-type: text/plain');
  header('Content-Disposition: attachment; filename="'.$_GET['_getfile'].'.inc.php"');
  echo $RCI->create_config($_GET['_getfile']);
  exit;
if (isset($_GET['_getfile']) && in_array($_GET['_getfile'], array('main', 'db'))) {
  $filename = $_GET['_getfile'] . '.inc.php';
  if (!empty($_SESSION[$filename])) {
    header('Content-type: text/plain');
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    echo $_SESSION[$filename];
    exit;
  }
  else {
    header('HTTP/1.0 404 Not found');
    die("The requested configuration was not found. Please run the installer from the beginning.");
  }
}
?>
installer/rcube_install.php
@@ -129,18 +129,17 @@
      // convert some form data
      if ($prop == 'debug_level') {
        $val = 0;
        if (isset($value))
      foreach ($value as $dbgval)
        if (is_array($value))
          foreach ($value as $dbgval)
            $val += intval($dbgval);
    $value = $val;
        $value = $val;
      }
      else if ($which == 'db' && $prop == 'db_dsnw' && !empty($_POST['_dbtype'])) {
        if ($_POST['_dbtype'] == 'sqlite')
          $value = sprintf('%s://%s?mode=0646', $_POST['_dbtype'], $_POST['_dbname']{0} == '/' ? '/' . $_POST['_dbname'] : $_POST['_dbname']);
        else
          $value = sprintf('%s://%s:%s@%s/%s', $_POST['_dbtype'], 
            rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']),
            $_POST['_dbhost'], $_POST['_dbname']);
            rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']), $_POST['_dbhost'], $_POST['_dbname']);
      }
      else if ($prop == 'smtp_auth_type' && $value == '0') {
        $value = '';