diff options
Diffstat (limited to 'includes/EditPage.php')
-rw-r--r-- | includes/EditPage.php | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/includes/EditPage.php b/includes/EditPage.php index 1bf5650be9ed..09468a2b9f5a 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -526,13 +526,12 @@ class EditPage { } $wgOut->setPageTitle( $s ); if ( !$this->checkUnicodeCompliantBrowser() ) { - $this->mArticle->setOldSubtitle(); $wgOut->addWikiText( wfMsg( 'nonunicodebrowser') ); } if ( isset( $this->mArticle ) && isset( $this->mArticle->mRevision ) && !$this->mArticle->mRevision->isCurrent() ) { - $this->mArticle->setOldSubtitle(); + $this->mArticle->setOldSubtitle( $this->mArticle->mRevision->getId() ); $wgOut->addWikiText( wfMsg( 'editingold' ) ); } } @@ -960,9 +959,19 @@ END } } - + /** + * Check if the browser is on a blacklist of user-agents known to + * mangle UTF-8 data on form submission. Returns true if Unicode + * should make it through, false if it's known to be a problem. + * @return bool + * @access private + */ function checkUnicodeCompliantBrowser() { global $wgBrowserBlackList; + if( empty( $_SERVER["HTTP_USER_AGENT"] ) ) { + // No User-Agent header sent? Trust it by default... + return true; + } $currentbrowser = $_SERVER["HTTP_USER_AGENT"]; foreach ( $wgBrowserBlackList as $browser ) { if ( preg_match($browser, $currentbrowser) ) { |