aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2016-11-24 22:22:38 +0100
committerMarc Alexander <admin@m-a-styles.de>2016-11-24 22:22:38 +0100
commit23f5b6debdd24cc1caefd3bb8cd6da96a88abe9a (patch)
tree280bb5bc2734b5a0976b7ceefac94bb0899a399a /phpBB/phpbb
parent145ba85d981f6bb3b6ebba74bcefb879da62d932 (diff)
downloadforums-23f5b6debdd24cc1caefd3bb8cd6da96a88abe9a.tar
forums-23f5b6debdd24cc1caefd3bb8cd6da96a88abe9a.tar.gz
forums-23f5b6debdd24cc1caefd3bb8cd6da96a88abe9a.tar.bz2
forums-23f5b6debdd24cc1caefd3bb8cd6da96a88abe9a.tar.xz
forums-23f5b6debdd24cc1caefd3bb8cd6da96a88abe9a.zip
[ticket/14875] Add method for untrimmed input to ajax iohandler
Due to the pre-encoded input and the escaping of the input, the string has to be decoded twice for the password. PHPBB3-14875
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r--phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php16
-rw-r--r--phpBB/phpbb/install/module/obtain_data/task/obtain_database_data.php11
2 files changed, 26 insertions, 1 deletions
diff --git a/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php b/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php
index c168d26425..591a19b7c1 100644
--- a/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php
+++ b/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php
@@ -121,6 +121,22 @@ class ajax_iohandler extends iohandler_base
}
/**
+ * Returns untrimmed input variable
+ *
+ * @param string $name Name of the input variable to obtain
+ * @param mixed $default A default value that is returned if the variable was not set.
+ * This function will always return a value of the same type as the default.
+ * @param bool $multibyte If $default is a string this paramater has to be true if the variable may contain any UTF-8 characters
+ * Default is false, causing all bytes outside the ASCII range (0-127) to be replaced with question marks
+ *
+ * @return mixed Value of the untrimmed input variable
+ */
+ public function get_untrimmed_input($name, $default, $multibyte = false)
+ {
+ return $this->request->untrimmed_variable($name, $default, $multibyte);
+ }
+
+ /**
* {@inheritdoc}
*/
public function get_server_variable($name, $default = '')
diff --git a/phpBB/phpbb/install/module/obtain_data/task/obtain_database_data.php b/phpBB/phpbb/install/module/obtain_data/task/obtain_database_data.php
index ce720dbf76..9019cf4332 100644
--- a/phpBB/phpbb/install/module/obtain_data/task/obtain_database_data.php
+++ b/phpBB/phpbb/install/module/obtain_data/task/obtain_database_data.php
@@ -79,10 +79,19 @@ class obtain_database_data extends \phpbb\install\task_base implements \phpbb\in
$dbhost = $this->io_handler->get_input('dbhost', '', true);
$dbport = $this->io_handler->get_input('dbport', '');
$dbuser = $this->io_handler->get_input('dbuser', '');
- $dbpasswd = $this->io_handler->get_input('dbpasswd', '', true);
$dbname = $this->io_handler->get_input('dbname', '');
$table_prefix = $this->io_handler->get_input('table_prefix', '');
+ // Need to get untrimmed password when using ajax IO handler
+ if ($this->io_handler instanceof \phpbb\install\helper\iohandler\ajax_iohandler)
+ {
+ $dbpasswd = htmlspecialchars_decode(htmlspecialchars_decode($this->io_handler->get_untrimmed_input('dbpasswd', '', true)));
+ }
+ else
+ {
+ $dbpasswd = $this->io_handler->get_input('dbpasswd', '', true);
+ }
+
// Check database data
$user_data_vaild = $this->check_database_data($dbms, $dbhost, $dbport, $dbuser, $dbpasswd, $dbname, $table_prefix);