From ea466f918018cfe4cc8b183fa9725884b56036e4 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Tue, 2 Jun 2009 16:53:44 +0000 Subject: [PATCH] bug #2796066 [priv] Inconsistent display of databases list --- ChangeLog | 1 + server_privileges.php | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 39e028e19..e1948e913 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA 3.2.1.0 (not yet released) - bug #2799009 Login with ipv6 IP address breaks redirect +- bug #2796066 [priv] Inconsistent display of databases list 3.2.0.0 (not yet released) - [core] better support for vendor customisation (based on what Debian needs) diff --git a/server_privileges.php b/server_privileges.php index acad908f7..d2b37edb1 100644 --- a/server_privileges.php +++ b/server_privileges.php @@ -1859,13 +1859,7 @@ if (empty($_REQUEST['adduser']) && (! isset($checkprivs) || ! strlen($checkprivs // no database name was given, display select db - if (! empty($found_rows)) { - $pred_db_array = array_diff( - PMA_DBI_fetch_result('SHOW DATABASES;'), - $found_rows); - } else { - $pred_db_array =PMA_DBI_fetch_result('SHOW DATABASES;'); - } + $pred_db_array =PMA_DBI_fetch_result('SHOW DATABASES;'); echo ' ' . "\n"; if (!empty($pred_db_array)) { @@ -1873,8 +1867,14 @@ if (empty($_REQUEST['adduser']) && (! isset($checkprivs) || ! strlen($checkprivs . ' ' . "\n"; foreach ($pred_db_array as $current_db) { $current_db = PMA_escape_mysql_wildcards($current_db); - echo ' ' . "\n"; + // cannot use array_diff() once, outside of the loop, + // because the list of databases has special characters + // already escaped in $found_rows, + // contrary to the output of SHOW DATABASES + if (empty($found_rows) || ! in_array($current_db, $found_rows)) { + echo ' ' . "\n"; + } } echo ' ' . "\n"; }