diff options
-rw-r--r-- | installer/config.php | 4 | ||||
-rw-r--r-- | installer/index.php | 18 | ||||
-rw-r--r-- | installer/rcube_install.php | 9 |
3 files changed, 18 insertions, 13 deletions
diff --git a/installer/config.php b/installer/config.php index 53a4655ed..d5e10e8b4 100644 --- a/installer/config.php +++ b/installer/config.php @@ -30,10 +30,10 @@ if (!empty($_POST['submit'])) { $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>'; diff --git a/installer/index.php b/installer/index.php index ff31667f9..d14e6ff37 100644 --- a/installer/index.php +++ b/installer/index.php @@ -31,12 +31,18 @@ function __autoload($classname) $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."); + } } ?> diff --git a/installer/rcube_install.php b/installer/rcube_install.php index e528cfc1f..37645adbc 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -129,18 +129,17 @@ class rcube_install // 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 = ''; |