From b0d453098b5359aa40db3fd22e5d472040fa0b64 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Sat, 17 Feb 2007 14:14:56 +0000 Subject: [PATCH] - fixed a referencing problem with objects (PHP4/5 conflict) - user_group_auth can take data from both target and source database git-svn-id: file:///svn/phpbb/trunk@7002 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/functions_convert.php | 4 ++-- .../install/convertors/functions_phpbb20.php | 8 +++---- phpBB/install/install_convert.php | 22 +++++++++++++++---- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php index 4244645af8..fe72f3fa9e 100644 --- a/phpBB/includes/functions_convert.php +++ b/phpBB/includes/functions_convert.php @@ -1066,7 +1066,7 @@ function add_user_group($group_id, $user_id, $group_leader=false) * @param string $group The name of the special group to add to * @param string $select_query An SQL query to retrieve the user(s) to add to the group */ -function user_group_auth($group, $select_query) +function user_group_auth($group, $select_query, $use_src_db) { global $convert, $phpbb_root_path, $config, $user, $db, $src_db, $same_db; @@ -1089,7 +1089,7 @@ function user_group_auth($group, $select_query) return; } - if ($same_db) + if ($same_db || !$use_src_db) { $sql = 'INSERT INTO ' . USER_GROUP_TABLE . ' (user_id, group_id, user_pending) ' . str_replace('{' . strtoupper($group) . '}', $group_id . ', 0', $select_query); diff --git a/phpBB/install/convertors/functions_phpbb20.php b/phpBB/install/convertors/functions_phpbb20.php index c80a0a0de2..0b05f4308d 100644 --- a/phpBB/install/convertors/functions_phpbb20.php +++ b/phpBB/install/convertors/functions_phpbb20.php @@ -698,22 +698,22 @@ function phpbb_convert_authentication($mode) if ($mode == 'start') { - user_group_auth('guests', 'SELECT user_id, {GUESTS} FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS); - user_group_auth('registered', 'SELECT user_id, {REGISTERED} FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS); + user_group_auth('guests', 'SELECT user_id, {GUESTS} FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS, false); + user_group_auth('registered', 'SELECT user_id, {REGISTERED} FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS, false); // Selecting from old table $auth_sql = 'SELECT '; $auth_sql .= (!empty($config['increment_user_id'])) ? 'user_id + 1 as user_id' : 'user_id'; $auth_sql .= ', {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1'; - user_group_auth('administrators', $auth_sql); + user_group_auth('administrators', $auth_sql, true); // Put administrators into global moderators group too... $auth_sql = 'SELECT '; $auth_sql .= (!empty($config['increment_user_id'])) ? 'user_id + 1 as user_id' : 'user_id'; $auth_sql .= ', {GLOBAL_MODERATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1'; - user_group_auth('global_moderators', $auth_sql); + user_group_auth('global_moderators', $auth_sql, true); } else if ($mode == 'first') { diff --git a/phpBB/install/install_convert.php b/phpBB/install/install_convert.php index 862964fccd..28093f8efa 100644 --- a/phpBB/install/install_convert.php +++ b/phpBB/install/install_convert.php @@ -407,7 +407,7 @@ class install_convert extends module else { $src_dbpasswd = htmlspecialchars_decode($src_dbpasswd); - $connect_test = connect_check_db(true, $error, $available_dbms[$src_dbms], false, $src_dbhost, $src_dbuser, $src_dbpasswd, $src_dbname, $src_dbport, ($src_dbms == $dbms) ? false : true); + $connect_test = connect_check_db(true, $error, $available_dbms[$src_dbms], $src_table_prefix, $src_dbhost, $src_dbuser, $src_dbpasswd, $src_dbname, $src_dbport, true, ($src_dbms == $dbms) ? false : true); } // The forum prefix of the old and the new forum can only be the same if two different databases are used. @@ -421,7 +421,7 @@ class install_convert extends module { // initiate database connection to old db if old and new db differ global $src_db, $same_db; - $src_db = $same_db = null; + $src_db = $same_db = false; if ($src_dbms != $dbms || $src_dbhost != $dbhost || $src_dbport != $dbport || $src_dbname != $dbname || $src_dbuser != $dbuser) { @@ -432,7 +432,14 @@ class install_convert extends module } else { - $src_db = &$db; + if (version_compare(PHP_VERSION, '5.0.0-dev', '<')) + { + $src_db = &$db; + } + else + { + $src_db = $db; + } $same_db = true; } @@ -660,7 +667,14 @@ class install_convert extends module } else { - $src_db = &$db; + if (version_compare(PHP_VERSION, '5.0.0-dev', '<')) + { + $src_db = &$db; + } + else + { + $src_db = $db; + } $same_db = true; }