diff options
-rw-r--r-- | phpBB/includes/functions_user.php | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index e88ded1b85..e21b720f4b 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -2297,15 +2297,21 @@ function avatar_process_user(&$error, $custom_userdata = false) // Do we actually have any data to update? if (sizeof($sql_ary)) { + $ext_new = $ext_old = ''; if (isset($sql_ary['user_avatar'])) { $userdata = ($custom_userdata === false) ? $user->data : $custom_userdata; + $ext_new = (empty($sql_ary['user_avatar'])) ? '' : substr(strrchr($sql_ary['user_avatar'], '.'), 1); + $ext_old = (empty($userdata['user_avatar'])) ? '' : substr(strrchr($userdata['user_avatar'], '.'), 1); - // Delete old avatar if present - if ((!empty($userdata['user_avatar']) && empty($sql_ary['user_avatar']) && $userdata['user_avatar_type'] == AVATAR_UPLOAD) - || ( !empty($userdata['user_avatar']) && !empty($sql_ary['user_avatar']) && $userdata['user_avatar_type'] == AVATAR_UPLOAD)) + if ($userdata['user_avatar_type'] == AVATAR_UPLOAD) { - avatar_delete('user', $userdata); + // Delete old avatar if present + if ((!empty($userdata['user_avatar']) && empty($sql_ary['user_avatar'])) + || ( !empty($userdata['user_avatar']) && !empty($sql_ary['user_avatar']) && $ext_new !== $ext_old)) + { + avatar_delete('user', $userdata); + } } } |