From 0910ab5deda10800dc08c8d01135b2d2bb6101b4 Mon Sep 17 00:00:00 2001 From: Jonathan Prust Vernizzi Date: Wed, 2 Mar 2022 23:25:50 -0300 Subject: [PATCH] fix: fixed an issue where passwords containing special characters were not parsed, resulting in error --- config.php | 4 ++-- driver/abstract.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config.php b/config.php index 678732f..4357f45 100755 --- a/config.php +++ b/config.php @@ -40,5 +40,5 @@ } }, $requiredParams); -define('FIRST_DSN', DATABASE_DRIVER.'://'.DATABASE_USER.':'.DATABASE_PASSWORD.'@'.DATABASE_HOST.':'.DATABASE_PORT.'/'.DATABASE_NAME); -define('SECOND_DSN', DATABASE_DRIVER.'://'.DATABASE_USER_SECONDARY.':'.DATABASE_PASSWORD_SECONDARY.'@'.DATABASE_HOST_SECONDARY.':'.DATABASE_PORT_SECONDARY.'/'.DATABASE_NAME_SECONDARY); \ No newline at end of file +define('FIRST_DSN', DATABASE_DRIVER.'://'.DATABASE_USER.':'.urlencode(DATABASE_PASSWORD).'@'.DATABASE_HOST.':'.DATABASE_PORT.'/'.DATABASE_NAME); +define('SECOND_DSN', DATABASE_DRIVER.'://'.DATABASE_USER_SECONDARY.':'.urlencode(DATABASE_PASSWORD_SECONDARY).'@'.DATABASE_HOST_SECONDARY.':'.DATABASE_PORT_SECONDARY.'/'.DATABASE_NAME_SECONDARY); \ No newline at end of file diff --git a/driver/abstract.php b/driver/abstract.php index c3059a5..008f3c4 100755 --- a/driver/abstract.php +++ b/driver/abstract.php @@ -21,6 +21,7 @@ protected function _getConnect($dsn) { if (!isset($this->_dsn[$dsn])) { $pdsn = parse_url($dsn); + $pdsn['pass'] = urldecode($pdsn['pass']); if (in_array(DRIVER, array('sqlserv', 'dblib', 'mssql'))) { $dsn = DRIVER . ':host=' . $pdsn['host'] . ':' . $pdsn['port'] . ';dbname=' . substr($pdsn['path'], 1, 1000) . ';charset=' . DATABASE_ENCODING;