summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2008-09-21 11:58:40 +0000
committerthomascube <thomas@roundcube.net>2008-09-21 11:58:40 +0000
commitae2fe663889a87fe594d82a1789dc98e9cb01904 (patch)
tree5e137c53d8a0aeea80aa121539a664b08b60c1ed
parent9418af7799274193a5642e40db3488f406760f26 (diff)
Save posted config in session for later download
-rw-r--r--installer/config.php4
-rw-r--r--installer/index.php18
-rw-r--r--installer/rcube_install.php9
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 = '';