diff --git a/phpBB/includes/usercp_avatar.php b/phpBB/includes/usercp_avatar.php index eddc042dfb..3e16879099 100644 --- a/phpBB/includes/usercp_avatar.php +++ b/phpBB/includes/usercp_avatar.php @@ -77,13 +77,12 @@ function user_avatar_gallery($mode, &$error, &$error_msg, $avatar_filename) function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename) { - $avatar_filename = rawurlencode($avatar_filename); - if ( !preg_match('#^http:\/\/#i', $avatar_filename) ) + if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) ) { $avatar_filename = 'http://' . $avatar_filename; } - if ( !preg_match('#^(http:\/\/[a-z0-9\-]+?\.([a-z0-9\-]+\.)*[a-z]+(:[0-9]+)*\/\.(gif|jpg|jpeg|png)$)#is', $avatar_filename) ) + if ( !preg_match('#^((http)|(ftp):\/\/[a-z0-9\-]+?\.([a-z0-9\-]+\.)+[a-z]+(:[0-9]+)*\/.*?\.(gif|jpg|jpeg|png)$)#is', $avatar_filename) ) { $error = true; $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format'];