diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2006-04-29 01:18:57 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2006-04-29 01:18:57 +0000 |
commit | 7bc05c5e24ca632f3aa5dfd1fe1e6bd145f9d34c (patch) | |
tree | 9dc3802635b2309fa5f8cb96e46ac5cae4a88b00 /phpBB/includes/ucp | |
parent | 656274cd5798ef9e62c23cdf0c3c1d66d612263d (diff) | |
download | forums-7bc05c5e24ca632f3aa5dfd1fe1e6bd145f9d34c.tar forums-7bc05c5e24ca632f3aa5dfd1fe1e6bd145f9d34c.tar.gz forums-7bc05c5e24ca632f3aa5dfd1fe1e6bd145f9d34c.tar.bz2 forums-7bc05c5e24ca632f3aa5dfd1fe1e6bd145f9d34c.tar.xz forums-7bc05c5e24ca632f3aa5dfd1fe1e6bd145f9d34c.zip |
- fixing some bugs, containing fixes for anonymous username displays, eaccelerator issue, permission trace and a few smaller bugs.
git-svn-id: file:///svn/phpbb/trunk@5858 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/ucp')
-rw-r--r-- | phpBB/includes/ucp/ucp_profile.php | 4 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_zebra.php | 50 |
2 files changed, 30 insertions, 24 deletions
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index 4f87ba8983..d8a131d09f 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -565,6 +565,10 @@ class ucp_profile $filename = ''; $type = $width = $height = 0; } + else + { + $data = array(); + } } if (!sizeof($error)) diff --git a/phpBB/includes/ucp/ucp_zebra.php b/phpBB/includes/ucp/ucp_zebra.php index e061aa590c..1b42030839 100644 --- a/phpBB/includes/ucp/ucp_zebra.php +++ b/phpBB/includes/ucp/ucp_zebra.php @@ -70,8 +70,7 @@ class ucp_zebra $db->sql_freeresult($result); $add = array_diff($add, $friends, $foes, array($user->data['username'])); - unset($friends); - unset($foes); + unset($friends, $foes); $add = implode(', ', preg_replace('#^[\s]*?(.*?)[\s]*?$#e', "\"'\" . \$db->sql_escape('\\1') . \"'\"", $add)); @@ -102,10 +101,12 @@ class ucp_zebra { foreach ($forum_ary as $auth_option => $user_ary) { - $perms += $user_ary; + $perms = array_merge($perms, $user_ary); } } + $perms = array_unique($perms); + // This may not be right ... it may yield true when perms equate to deny $user_id_ary = array_diff($user_id_ary, $perms); unset($perms); @@ -115,32 +116,33 @@ class ucp_zebra { $sql_mode = ($mode == 'friends') ? 'friend' : 'foe'; - switch (SQL_LAYER) + $sql_ary = array(); + foreach ($user_id_ary as $zebra_id) { - case 'mysql': - $sql = 'INSERT INTO ' . ZEBRA_TABLE . " (user_id, zebra_id, $sql_mode) - VALUES " . implode(', ', preg_replace('#^([0-9]+)$#', '(' . $user->data['user_id'] . ", \\1, 1)", $user_id_ary)); - $db->sql_query($sql); - break; + $sql_ary[] = array( + 'user_id' => $user->data['user_id'], + 'zebra_id' => (int) $zebra_id, + $sql_mode => 1 + ); + } - case 'mysql4': - case 'mysqli': - case 'mssql': - case 'mssql_odbc': - case 'sqlite': - $sql = 'INSERT INTO ' . ZEBRA_TABLE . " (user_id, zebra_id, $sql_mode) - VALUES " . implode(' UNION ALL ', preg_replace('#^([0-9]+)$#', '(' . $user->data['user_id'] . ", \\1, 1)", $user_id_ary)); - $db->sql_query($sql); + if (sizeof($sql_ary)) + { + switch (SQL_LAYER) + { + case 'mysql': + case 'mysql4': + case 'mysqli': + $db->sql_query('INSERT INTO ' . ZEBRA_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $sql_ary)); break; - default: - foreach ($user_id_ary as $zebra_id) - { - $sql = 'INSERT INTO ' . ZEBRA_TABLE . " (user_id, zebra_id, $sql_mode) - VALUES (" . $user->data['user_id'] . ", $zebra_id, 1)"; - $db->sql_query($sql); - } + default: + foreach ($sql_ary as $ary) + { + $db->sql_query('INSERT INTO ' . ZEBRA_TABLE . ' ' . $db->sql_build_array('INSERT', $ary)); + } break; + } } } else |