Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyleK <kylekatarnls@gmail.com>2014-09-14 16:18:01 +0400
committerKyleK <kylekatarnls@gmail.com>2014-09-14 16:18:01 +0400
commita9fb8c7b89def45a3754fb383ce3e76488ed7156 (patch)
treef5d0e22bc8698294367c356db2ee1cc1e12eef48
parent37599df8123f7f2678b55c42b139d619c0a4d3b9 (diff)
Replace header() with Common::sendHeader() when possible
-rw-r--r--core/API/ApiRenderer.php4
-rw-r--r--core/BaseFactory.php3
-rw-r--r--core/Common.php7
-rw-r--r--core/DataTable/Renderer.php3
-rw-r--r--core/DataTable/Renderer/Csv.php2
-rw-r--r--core/DataTable/Renderer/Json.php2
-rw-r--r--core/Error.php9
-rw-r--r--core/ExceptionHandler.php5
-rw-r--r--core/Piwik.php5
-rw-r--r--core/ProxyHttp.php27
-rw-r--r--core/Url.php9
-rw-r--r--core/View.php8
-rw-r--r--core/testMinimumPhpVersion.php6
-rwxr-xr-xmisc/others/geoipUpdateRows.php4
-rw-r--r--misc/proxy-hide-piwik-url/piwik.php31
-rw-r--r--plugins/API/Renderer/Console.php5
-rw-r--r--plugins/API/Renderer/Csv.php6
-rw-r--r--plugins/API/Renderer/Html.php4
-rw-r--r--plugins/API/Renderer/Original.php2
-rw-r--r--plugins/API/Renderer/Php.php2
-rw-r--r--plugins/API/Renderer/Rss.php6
-rw-r--r--plugins/API/Renderer/Tsv.php3
-rw-r--r--plugins/API/Renderer/Xml.php3
-rw-r--r--plugins/Installation/Controller.php2
-rw-r--r--plugins/Overlay/Controller.php2
-rw-r--r--plugins/Proxy/Controller.php2
26 files changed, 94 insertions, 68 deletions
diff --git a/core/API/ApiRenderer.php b/core/API/ApiRenderer.php
index 924bd46aab..4a75f3d6e6 100644
--- a/core/API/ApiRenderer.php
+++ b/core/API/ApiRenderer.php
@@ -8,10 +8,10 @@
*/
namespace Piwik\API;
+use Exception;
use Piwik\Common;
use Piwik\DataTable\Renderer;
use Piwik\DataTable;
-use Exception;
use Piwik\Piwik;
use Piwik\Plugin;
@@ -116,7 +116,7 @@ abstract class ApiRenderer
}
$availableRenderers = implode(', ', $availableRenderers);
- @header('Content-Type: text/plain; charset=utf-8');
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
throw new Exception(Piwik::translate('General_ExceptionInvalidRendererFormat', array($format, $availableRenderers)));
}
diff --git a/core/BaseFactory.php b/core/BaseFactory.php
index e24b6dfc02..6f09f952ef 100644
--- a/core/BaseFactory.php
+++ b/core/BaseFactory.php
@@ -9,6 +9,7 @@
namespace Piwik;
use Exception;
+use Piwik\Common;
/**
* Base class for all factory types.
@@ -34,7 +35,7 @@ abstract class BaseFactory
$className = static::getClassNameFromClassId($classId);
if (!class_exists($className)) {
- @header('Content-Type: text/plain; charset=utf-8');
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
throw new Exception(static::getInvalidClassIdExceptionMessage($classId));
}
diff --git a/core/Common.php b/core/Common.php
index 5d5c35c764..c345c1d17d 100644
--- a/core/Common.php
+++ b/core/Common.php
@@ -1053,12 +1053,7 @@ class Common
public static function sendHeader($header, $replace = true)
{
// don't send header in CLI mode
- if(Common::isPhpCliMode()) {
- return;
- }
- if (isset($GLOBALS['PIWIK_TRACKER_LOCAL_TRACKING']) && $GLOBALS['PIWIK_TRACKER_LOCAL_TRACKING']) {
- @header($header, $replace);
- } else {
+ if(!Common::isPhpCliMode() and !headers_sent()) {
header($header, $replace);
}
}
diff --git a/core/DataTable/Renderer.php b/core/DataTable/Renderer.php
index e366cc2ec8..5705b3e205 100644
--- a/core/DataTable/Renderer.php
+++ b/core/DataTable/Renderer.php
@@ -9,6 +9,7 @@
namespace Piwik\DataTable;
use Exception;
+use Piwik\Common;
use Piwik\DataTable;
use Piwik\Metrics;
use Piwik\Piwik;
@@ -100,7 +101,7 @@ abstract class Renderer extends BaseFactory
*/
protected function renderHeader()
{
- @header('Content-Type: text/plain; charset=utf-8');
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
}
/**
diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php
index ae7d2acbb3..064dbd6db1 100644
--- a/core/DataTable/Renderer/Csv.php
+++ b/core/DataTable/Renderer/Csv.php
@@ -341,7 +341,7 @@ class Csv extends Renderer
}
// silent fail otherwise unit tests fail
- @header('Content-Disposition: attachment; filename="' . $fileName . '"', true);
+ Common::sendHeader('Content-Disposition: attachment; filename="' . $fileName . '"', true);
ProxyHttp::overrideCacheControlHeaders();
}
diff --git a/core/DataTable/Renderer/Json.php b/core/DataTable/Renderer/Json.php
index 2a5575c945..8fea38a658 100644
--- a/core/DataTable/Renderer/Json.php
+++ b/core/DataTable/Renderer/Json.php
@@ -79,7 +79,7 @@ class Json extends Renderer
public static function sendHeaderJSON()
{
- @header('Content-Type: application/json; charset=utf-8');
+ Common::sendHeader('Content-Type: application/json; charset=utf-8');
}
private function convertDataTableToArray($table)
diff --git a/core/Error.php b/core/Error.php
index 7cff6fac0b..f7decbbc16 100644
--- a/core/Error.php
+++ b/core/Error.php
@@ -8,6 +8,11 @@
*/
namespace Piwik;
+use Piwik\Common;
+use Piwik\Log;
+use Piwik\Piwik;
+use Piwik\Version;
+
require_once PIWIK_INCLUDE_PATH . '/core/Log.php';
/**
@@ -143,9 +148,7 @@ class Error
return;
}
- if (!Common::isPhpCliMode()) {
- @header('Content-Type: text/html; charset=utf-8');
- }
+ Common::sendHeader('Content-Type: text/html; charset=utf-8');
$htmlString = '';
$htmlString .= "\n<div style='word-wrap: break-word; border: 3px solid red; padding:4px; width:70%; background-color:#FFFF96;'>
diff --git a/core/ExceptionHandler.php b/core/ExceptionHandler.php
index 8d5f9c595e..0e526225d5 100644
--- a/core/ExceptionHandler.php
+++ b/core/ExceptionHandler.php
@@ -9,6 +9,7 @@
namespace Piwik;
use Piwik\API\ResponseBuilder;
+use Piwik\Common;
use Piwik\Plugin;
/**
@@ -46,9 +47,7 @@ class ExceptionHandler
public static function formatScreenMessage(&$message, $level, $tag, $datetime, $log)
{
if ($message instanceof \Exception) {
- if (!Common::isPhpCliMode()) {
- @header('Content-Type: text/html; charset=utf-8');
- }
+ Common::sendHeader('Content-Type: text/html; charset=utf-8');
$outputFormat = strtolower(Common::getRequestVar('format', 'html', 'string'));
$response = new ResponseBuilder($outputFormat);
diff --git a/core/Piwik.php b/core/Piwik.php
index ccaee84962..7a782033a2 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -9,6 +9,7 @@
namespace Piwik;
use Exception;
+use Piwik\Common;
use Piwik\Db\Adapter;
use Piwik\Db\Schema;
use Piwik\Db;
@@ -76,9 +77,7 @@ class Piwik
*/
public static function exitWithErrorMessage($message)
{
- if (!Common::isPhpCliMode()) {
- @header('Content-Type: text/html; charset=utf-8');
- }
+ Common::sendHeader('Content-Type: text/html; charset=utf-8');
$output = "<style>a{color:red;}</style>\n" .
"<div style='color:red;font-family:Georgia;font-size:120%'>" .
diff --git a/core/ProxyHttp.php b/core/ProxyHttp.php
index cb1fa654d3..4fee4c1520 100644
--- a/core/ProxyHttp.php
+++ b/core/ProxyHttp.php
@@ -77,12 +77,12 @@ class ProxyHttp
// set some HTTP response headers
self::overrideCacheControlHeaders('public');
- @header('Vary: Accept-Encoding');
- @header('Content-Disposition: inline; filename=' . basename($file));
+ Common::sendHeader('Vary: Accept-Encoding');
+ Common::sendHeader('Content-Disposition: inline; filename=' . basename($file));
if ($expireFarFutureDays) {
// Required by proxy caches potentially in between the browser and server to cache the request indeed
- @header(self::getExpiresHeaderForFutureDay($expireFarFutureDays));
+ Common::sendHeader(self::getExpiresHeaderForFutureDay($expireFarFutureDays));
}
// Return 304 if the file has not modified since
@@ -143,18 +143,18 @@ class ProxyHttp
}
}
- @header('Last-Modified: ' . $lastModified);
+ Common::sendHeader('Last-Modified: ' . $lastModified);
if (!$phpOutputCompressionEnabled) {
- @header('Content-Length: ' . ($byteEnd - $byteStart));
+ Common::sendHeader('Content-Length: ' . ($byteEnd - $byteStart));
}
if (!empty($contentType)) {
- @header('Content-Type: ' . $contentType);
+ Common::sendHeader('Content-Type: ' . $contentType);
}
if ($compressed) {
- @header('Content-Encoding: ' . $encoding);
+ Common::sendHeader('Content-Encoding: ' . $encoding);
}
if (!_readfile($file, $byteStart, $byteEnd)) {
@@ -209,12 +209,12 @@ class ProxyHttp
public static function overrideCacheControlHeaders($override = null)
{
if ($override || self::isHttps()) {
- @header('Pragma: ');
- @header('Expires: ');
+ Common::sendHeader('Pragma: ');
+ Common::sendHeader('Expires: ');
if (in_array($override, array('public', 'private', 'no-cache', 'no-store'))) {
- @header("Cache-Control: $override, must-revalidate");
+ Common::sendHeader("Cache-Control: $override, must-revalidate");
} else {
- @header('Cache-Control: must-revalidate');
+ Common::sendHeader('Cache-Control: must-revalidate');
}
}
}
@@ -228,11 +228,12 @@ class ProxyHttp
protected static function setHttpStatus($status)
{
if (strpos(PHP_SAPI, '-fcgi') === false) {
- @header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status);
+ $key = $_SERVER['SERVER_PROTOCOL'];
} else {
// FastCGI
- @header('Status: ' . $status);
+ $key = 'Status:';
}
+ Common::sendHeader($key . ' ' . $status);
}
/**
diff --git a/core/Url.php b/core/Url.php
index 376138b608..89496515db 100644
--- a/core/Url.php
+++ b/core/Url.php
@@ -10,6 +10,13 @@ namespace Piwik;
use Exception;
+use Piwik\Config;
+use Piwik\Common;
+use Piwik\Ip;
+use Piwik\ProxyHttp;
+use Piwik\Session;
+use Piwik\UrlHelper;
+
/**
* Provides URL related helper methods.
*
@@ -478,7 +485,7 @@ class Url
if (UrlHelper::isLookLikeUrl($url)
|| strpos($url, 'index.php') === 0
) {
- @header("Location: $url");
+ Common::sendHeader("Location: $url");
} else {
echo "Invalid URL to redirect to.";
}
diff --git a/core/View.php b/core/View.php
index c62c0eed78..bc02e4c792 100644
--- a/core/View.php
+++ b/core/View.php
@@ -9,8 +9,12 @@
namespace Piwik;
use Exception;
+use Piwik\Access;
use Piwik\AssetManager\UIAssetCacheBuster;
+use Piwik\Common;
use Piwik\Plugins\UsersManager\API as APIUsersManager;
+use Piwik\SettingsPiwik;
+use Piwik\Version;
use Piwik\View\ViewInterface;
use Twig_Environment;
@@ -246,9 +250,9 @@ class View implements ViewInterface
ProxyHttp::overrideCacheControlHeaders('no-store');
- @header('Content-Type: ' . $this->contentType);
+ Common::sendHeader('Content-Type: ' . $this->contentType);
// always sending this header, sometimes empty, to ensure that Dashboard embed loads (which could call this header() multiple times, the last one will prevail)
- @header('X-Frame-Options: ' . (string)$this->xFrameOptions);
+ Common::sendHeader('X-Frame-Options: ' . (string)$this->xFrameOptions);
return $this->renderTwigTemplate();
}
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index 5a67f53716..bce404c9e6 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -89,8 +89,10 @@ if (!function_exists('Piwik_ExitWithMessage')) {
*/
function Piwik_ExitWithMessage($message, $optionalTrace = false, $optionalLinks = false, $optionalLinkBack = false)
{
- @header('Content-Type: text/html; charset=utf-8');
- @header('HTTP/1.1 500 Internal Server Error');
+ if (!headers_sent()) {
+ header('Content-Type: text/html; charset=utf-8');
+ header('HTTP/1.1 500 Internal Server Error');
+ }
if ($optionalTrace) {
$optionalTrace = '<span class="exception-backtrace">Backtrace:<br /><pre>' . $optionalTrace . '</pre></span>';
diff --git a/misc/others/geoipUpdateRows.php b/misc/others/geoipUpdateRows.php
index df480d395d..b90a2d376c 100755
--- a/misc/others/geoipUpdateRows.php
+++ b/misc/others/geoipUpdateRows.php
@@ -89,9 +89,7 @@ if (!Common::isPhpCliMode()) {
function geoipUpdateError($message)
{
Log::error($message);
- if (!Common::isPhpCliMode()) {
- @header('HTTP/1.1 500 Internal Server Error', $replace = true, $responseCode = 500);
- }
+ Common::sendHeader('HTTP/1.1 500 Internal Server Error', $replace = true, $responseCode = 500);
exit;
}
diff --git a/misc/proxy-hide-piwik-url/piwik.php b/misc/proxy-hide-piwik-url/piwik.php
index 846a82313b..19493aeccc 100644
--- a/misc/proxy-hide-piwik-url/piwik.php
+++ b/misc/proxy-hide-piwik-url/piwik.php
@@ -24,6 +24,19 @@ $TOKEN_AUTH = 'xyz';
// Maximum time, in seconds, to wait for the Piwik server to return the 1*1 GIF
$timeout = 5;
+function sendHeader($header, $replace = true)
+{
+ headers_sent() || header($head, $replace);
+}
+
+function arrayValue($array, $key, $value = null)
+{
+ if (!empty($array[$key])) {
+ $value = $array[$key];
+ }
+ return $value;
+}
+
// DO NOT MODIFY BELOW
// ---------------------------
// 1) PIWIK.JS PROXY: No _GET parameter, we serve the JS file
@@ -40,18 +53,18 @@ if (empty($_GET)) {
$lastModified = time() - 86400;
// set HTTP response headers
- header('Vary: Accept-Encoding');
+ sendHeader('Vary: Accept-Encoding');
// Returns 304 if not modified since
if (!empty($modifiedSince) && $modifiedSince < $lastModified) {
- header(sprintf("%s 304 Not Modified", $_SERVER['SERVER_PROTOCOL']));
+ sendHeader(sprintf("%s 304 Not Modified", $_SERVER['SERVER_PROTOCOL']));
} else {
- header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- @header('Content-Type: application/javascript; charset=UTF-8');
+ sendHeader('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+ sendHeader('Content-Type: application/javascript; charset=UTF-8');
if ($piwikJs = file_get_contents($PIWIK_URL . 'piwik.js')) {
echo $piwikJs;
} else {
- header($_SERVER['SERVER_PROTOCOL'] . '505 Internal server error');
+ sendHeader($_SERVER['SERVER_PROTOCOL'] . '505 Internal server error');
}
}
exit;
@@ -65,10 +78,10 @@ $url = sprintf("%spiwik.php?cip=%s&token_auth=%s&", $PIWIK_URL, getVisitIp(), $T
foreach ($_GET as $key => $value) {
$url .= $key . '=' . urlencode($value) . '&';
}
-header("Content-Type: image/gif");
+sendHeader("Content-Type: image/gif");
$stream_options = array('http' => array(
- 'user_agent' => @$_SERVER['HTTP_USER_AGENT'],
- 'header' => sprintf("Accept-Language: %s\r\n", @str_replace(array("\n", "\t", "\r"), "", $_SERVER['HTTP_ACCEPT_LANGUAGE'])),
+ 'user_agent' => arrayValue($_SERVER, 'HTTP_USER_AGENT', ''),
+ 'header' => sprintf("Accept-Language: %s\r\n", str_replace(array("\n", "\t", "\r"), "", arrayValue($_SERVER, 'HTTP_ACCEPT_LANGUAGE', ''))),
'timeout' => $timeout
));
$ctx = stream_context_create($stream_options);
@@ -88,5 +101,5 @@ function getVisitIp()
return $_SERVER[$ipKey];
}
}
- return @$_SERVER['REMOTE_ADDR'];
+ return arrayValue($_SERVER, 'REMOTE_ADDR');
}
diff --git a/plugins/API/Renderer/Console.php b/plugins/API/Renderer/Console.php
index d0798413e6..40794ef8e9 100644
--- a/plugins/API/Renderer/Console.php
+++ b/plugins/API/Renderer/Console.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\API\Renderer;
use Piwik\API\ApiRenderer;
+use Piwik\Common;
use Piwik\DataTable\Renderer;
use Piwik\DataTable;
@@ -17,14 +18,14 @@ class Console extends ApiRenderer
public function renderException($message, \Exception $exception)
{
- @header('Content-Type: text/plain; charset=utf-8');
+ self::sendHeader();
return 'Error: ' . $message;
}
public function sendHeader()
{
- @header('Content-Type: text/plain; charset=utf-8');
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
}
}
diff --git a/plugins/API/Renderer/Csv.php b/plugins/API/Renderer/Csv.php
index f7c3b0f01e..468a3a2588 100644
--- a/plugins/API/Renderer/Csv.php
+++ b/plugins/API/Renderer/Csv.php
@@ -19,13 +19,13 @@ class Csv extends ApiRenderer
public function renderSuccess($message)
{
- @header("Content-Disposition: attachment; filename=piwik-report-export.csv");
+ Common::sendHeader("Content-Disposition: attachment; filename=piwik-report-export.csv");
return "message\n" . $message;
}
public function renderException($message, \Exception $exception)
{
- @header('Content-Type: text/html; charset=utf-8', true);
+ Common::sendHeader('Content-Type: text/html; charset=utf-8', true);
return 'Error: ' . $message;
}
@@ -54,7 +54,7 @@ class Csv extends ApiRenderer
public function sendHeader()
{
- @header("Content-Type: application/vnd.ms-excel", true);
+ Common::sendHeader("Content-Type: application/vnd.ms-excel", true);
ProxyHttp::overrideCacheControlHeaders();
}
}
diff --git a/plugins/API/Renderer/Html.php b/plugins/API/Renderer/Html.php
index cd41209083..4037c35b4e 100644
--- a/plugins/API/Renderer/Html.php
+++ b/plugins/API/Renderer/Html.php
@@ -18,7 +18,7 @@ class Html extends ApiRenderer
public function renderException($message, \Exception $exception)
{
- @header('Content-Type: text/plain; charset=utf-8', true);
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8', true);
return nl2br($message);
}
@@ -45,7 +45,7 @@ class Html extends ApiRenderer
public function sendHeader()
{
- @header('Content-Type: text/html; charset=utf-8', true);
+ Common::sendHeader('Content-Type: text/html; charset=utf-8', true);
}
}
diff --git a/plugins/API/Renderer/Original.php b/plugins/API/Renderer/Original.php
index 5249258fd8..33722b7026 100644
--- a/plugins/API/Renderer/Original.php
+++ b/plugins/API/Renderer/Original.php
@@ -50,7 +50,7 @@ class Original extends ApiRenderer
public function sendHeader()
{
- @header('Content-Type: text/plain; charset=utf-8');
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
}
/**
diff --git a/plugins/API/Renderer/Php.php b/plugins/API/Renderer/Php.php
index afeda22988..b55db23abd 100644
--- a/plugins/API/Renderer/Php.php
+++ b/plugins/API/Renderer/Php.php
@@ -56,7 +56,7 @@ class Php extends ApiRenderer
public function sendHeader()
{
- @header('Content-Type: text/plain; charset=utf-8');
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
}
/**
diff --git a/plugins/API/Renderer/Rss.php b/plugins/API/Renderer/Rss.php
index b93f2d9ded..3ee1c287bc 100644
--- a/plugins/API/Renderer/Rss.php
+++ b/plugins/API/Renderer/Rss.php
@@ -18,7 +18,7 @@ class Rss extends ApiRenderer
public function renderException($message, \Exception $exception)
{
- @header('Content-Type: text/plain; charset=utf-8');
+ self::sendHeader('plain');
return 'Error: ' . $message;
}
@@ -42,9 +42,9 @@ class Rss extends ApiRenderer
return $this->renderDataTable($array);
}
- public function sendHeader()
+ public function sendHeader($type = "xml")
{
- @header('Content-Type: text/xml; charset=utf-8');
+ Common::sendHeader('Content-Type: text/' . $type . '; charset=utf-8');
}
diff --git a/plugins/API/Renderer/Tsv.php b/plugins/API/Renderer/Tsv.php
index 015ba44175..c5505159e0 100644
--- a/plugins/API/Renderer/Tsv.php
+++ b/plugins/API/Renderer/Tsv.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\Plugins\API\Renderer;
+use Piwik\Common;
use Piwik\DataTable\Renderer;
use Piwik\DataTable;
@@ -16,7 +17,7 @@ class Tsv extends Csv
public function renderSuccess($message)
{
- @header("Content-Disposition: attachment; filename=piwik-report-export.csv");
+ Common::sendHeader("Content-Disposition: attachment; filename=piwik-report-export.csv");
return "message\t" . $message;
}
diff --git a/plugins/API/Renderer/Xml.php b/plugins/API/Renderer/Xml.php
index ff68b4f79b..99092ee057 100644
--- a/plugins/API/Renderer/Xml.php
+++ b/plugins/API/Renderer/Xml.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\API\Renderer;
use Piwik\API\ApiRenderer;
+use Piwik\Common;
use Piwik\DataTable\Renderer;
use Piwik\DataTable;
@@ -33,7 +34,7 @@ class Xml extends ApiRenderer
public function sendHeader()
{
- @header('Content-Type: text/xml; charset=utf-8');
+ Common::sendHeader('Content-Type: text/xml; charset=utf-8');
}
}
diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php
index 567a3cbe2e..d3da5402f0 100644
--- a/plugins/Installation/Controller.php
+++ b/plugins/Installation/Controller.php
@@ -454,7 +454,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
*/
public function getBaseCss()
{
- @header('Content-Type: text/css');
+ Common::sendHeader('Content-Type: text/css');
return AssetManager::getInstance()->getCompiledBaseCss()->getContent();
}
diff --git a/plugins/Overlay/Controller.php b/plugins/Overlay/Controller.php
index 35b6f5a793..26de399636 100644
--- a/plugins/Overlay/Controller.php
+++ b/plugins/Overlay/Controller.php
@@ -133,7 +133,7 @@ class Controller extends \Piwik\Plugin\Controller
$site = $sitesManager->getSiteFromId($idSite);
$urls = $sitesManager->getSiteUrlsFromId($idSite);
- @header('Content-Type: text/html; charset=UTF-8');
+ Common::sendHeader('Content-Type: text/html; charset=UTF-8');
return '
<html><head><title></title></head><body>
<script type="text/javascript">
diff --git a/plugins/Proxy/Controller.php b/plugins/Proxy/Controller.php
index 3097c786b5..bfc44f421f 100644
--- a/plugins/Proxy/Controller.php
+++ b/plugins/Proxy/Controller.php
@@ -96,7 +96,7 @@ class Controller extends \Piwik\Plugin\Controller
if (!UrlHelper::isLookLikeUrl($url)) {
die('Please check the &url= parameter: it should to be a valid URL');
}
- @header('Content-Type: text/html; charset=utf-8');
+ Common::sendHeader('Content-Type: text/html; charset=utf-8');
echo '<html><head><meta http-equiv="refresh" content="0;url=' . $url . '" /></head></html>';
exit;