diff options
author | Cash Costello <cash.costello@gmail.com> | 2011-12-17 08:43:49 -0500 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2011-12-17 08:43:49 -0500 |
commit | c529671a522dea0dcfc280815092ee1f5127b92b (patch) | |
tree | 6707950a6ddd666eb6f33322d6c2b6e1fc04f4e2 /engine | |
parent | c97e17eba9a5bd2272c27b15c18580c964a57f9d (diff) | |
download | elgg-c529671a522dea0dcfc280815092ee1f5127b92b.tar.gz elgg-c529671a522dea0dcfc280815092ee1f5127b92b.tar.bz2 |
Fixes #4190 accepting full urls with non-ascii characters
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/output.php | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/engine/lib/output.php b/engine/lib/output.php index 989eca60e..6554481f5 100644 --- a/engine/lib/output.php +++ b/engine/lib/output.php @@ -234,7 +234,7 @@ function elgg_clean_vars(array $vars = array()) { * * @example * elgg_normalize_url(''); // 'http://my.site.com/' - * elgg_normalize_url('dashboard'); // 'http://my.site.com/dashboard' + * elgg_normalize_url('dashboard'); // 'http://my.site.com/dashboard' * elgg_normalize_url('http://google.com/'); // no change * elgg_normalize_url('//google.com/'); // no change * @@ -257,6 +257,11 @@ function elgg_normalize_url($url) { $validated = filter_var($url, FILTER_VALIDATE_URL); } + // work around for handling absoluate IRIs (RFC 3987) - see #4190 + if (!$validated && (strpos($url, 'http:') === 0) || (strpos($url, 'https:') === 0)) { + $validated = true; + } + if ($validated) { // all normal URLs including mailto: return $url; |