diff options
author | thomascube <thomas@roundcube.net> | 2008-03-02 13:36:34 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2008-03-02 13:36:34 +0000 |
commit | 2371191c30edbbafa420882cd2f812b8ab03f2a9 (patch) | |
tree | eed7af473ff7efd39de1f4247a31278b96a1766b | |
parent | 330127a6123e45a96132910ddd991c37b2ed5953 (diff) |
Fix sqlite dsn composing
-rw-r--r-- | installer/config.php | 10 | ||||
-rw-r--r-- | installer/rcube_install.php | 10 |
2 files changed, 12 insertions, 8 deletions
diff --git a/installer/config.php b/installer/config.php index 9d22c28dd..afea04724 100644 --- a/installer/config.php +++ b/installer/config.php @@ -202,15 +202,15 @@ $input_dbpass = new textfield(array('name' => '_dbpass', 'size' => 20, 'id' => " $dsnw = DB::parseDSN($RCI->getprop('db_dsnw')); -echo $select_dbtype->show($_POST['_dbtype'] ? $_POST['_dbtype'] : $dsnw['phptype']); +echo $select_dbtype->show($RCI->is_post ? $_POST['_dbtype'] : $dsnw['phptype']); echo '<label for="cfgdbtype">Database type</label><br />'; -echo $input_dbhost->show($_POST['_dbhost'] ? $_POST['_dbhost'] : $dsnw['hostspec']); +echo $input_dbhost->show($RCI->is_post ? $_POST['_dbhost'] : $dsnw['hostspec']); echo '<label for="cfgdbhost">Database server</label><br />'; -echo $input_dbname->show($_POST['_dbname'] ? $_POST['_dbname'] : $dsnw['database']); +echo $input_dbname->show($RCI->is_post ? $_POST['_dbname'] : $dsnw['database']); echo '<label for="cfgdbname">Database name</label><br />'; -echo $input_dbuser->show($_POST['_dbuser'] ? $_POST['_dbuser'] : $dsnw['username']); +echo $input_dbuser->show($RCI->is_post ? $_POST['_dbuser'] : $dsnw['username']); echo '<label for="cfgdbuser">Database user name (needs write permissions)</label><br />'; -echo $input_dbpass->show($_POST['_dbpass'] ? $_POST['_dbpass'] : $dsnw['password']); +echo $input_dbpass->show($RCI->is_post ? $_POST['_dbpass'] : $dsnw['password']); echo '<label for="cfgdbpass">Database password</label><br />'; ?> diff --git a/installer/rcube_install.php b/installer/rcube_install.php index 35054a19e..efe139d7d 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -24,6 +24,7 @@ class rcube_install { var $step; + var $is_post = false; var $failures = 0; var $config = array(); var $configured = false; @@ -37,6 +38,7 @@ class rcube_install function rcube_install() { $this->step = intval($_REQUEST['_step']); + $this->is_post = $_SERVER['REQUEST_METHOD'] == 'POST'; } /** @@ -98,8 +100,7 @@ class rcube_install */ function getprop($name, $default = '') { - $value = $_SERVER['REQUEST_METHOD'] == 'POST' && - (isset($_POST["_$name"]) || $this->config_props[$name]) ? $_POST["_$name"] : $this->config[$name]; + $value = $this->is_post && (isset($_POST["_$name"]) || $this->config_props[$name]) ? $_POST["_$name"] : $this->config[$name]; if ($name == 'des_key' && !isset($_REQUEST["_$name"])) $value = self::random_key(24); @@ -133,7 +134,10 @@ class rcube_install $value = $val; } else if ($prop == 'db_dsnw' && !empty($_POST['_dbtype'])) { - $value = sprintf('%s://%s:%s@%s/%s', $_POST['_dbtype'], $_POST['_dbuser'], $_POST['_dbpass'], $_POST['_dbhost'], $_POST['_dbname']); + 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'], $_POST['_dbuser'], $_POST['_dbpass'], $_POST['_dbhost'], $_POST['_dbname']); } else if ($prop == 'smtp_auth_type' && $value == '0') { $value = ''; |