aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/functions.php35
-rw-r--r--phpBB/includes/functions_acp.php27
2 files changed, 33 insertions, 29 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index e9f3ce59bd..2104bd515a 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -5030,8 +5030,19 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'SITE_LOGO_IMG' => $user->img('site_logo'),
));
- // A listener can set this variable to `false` when it wants to prevent setting of headers
- $page_header_set_headers = true;
+ // An array of http headers that phpbb will set. The following event may override these.
+ $http_headers = array(
+ // application/xhtml+xml not used because of IE
+ 'Content-type' => 'text/html; charset=UTF-8',
+ 'Cache-Control' => 'private, no-cache="set-cookie"',
+ 'Expires' => '0',
+ 'Pragma' => 'no-cache',
+ );
+ if (!empty($user->data['is_bot']))
+ {
+ // Let reverse proxies know we detected a bot.
+ $http_headers['X-PHPBB-IS-BOT'] = 'yes';
+ }
/**
* Execute code and/or overwrite _common_ template variables after they have been assigned.
@@ -5043,28 +5054,18 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
* session item, e.g. forum for
* session_forum_id
* @var int item_id Restrict online users to item id
- * @var bool page_header_set_headers Set to false if phpBB should not
- * set HTTP headers (since you have
- * set them elsewhere).
+ * @var array http_headers HTTP headers that should be set by phpbb
*
* @since 3.1.0-b3
*/
- $vars = array('page_title', 'display_online_list', 'item_id', 'item', 'page_header_set_headers');
+ $vars = array('page_title', 'display_online_list', 'item_id', 'item', 'http_headers');
extract($phpbb_dispatcher->trigger_event('core.page_header_after', compact($vars)));
- if ($page_header_set_headers)
+ if (is_array($http_headers))
{
- // application/xhtml+xml not used because of IE
- header('Content-type: text/html; charset=UTF-8');
-
- header('Cache-Control: private, no-cache="set-cookie"');
- header('Expires: 0');
- header('Pragma: no-cache');
-
- if (!empty($user->data['is_bot']))
+ foreach ($http_headers as $hname => $hval)
{
- // Let reverse proxies know we detected a bot.
- header('X-PHPBB-IS-BOT: yes');
+ header((string) $hname.': '.(string) $hval);
}
}
diff --git a/phpBB/includes/functions_acp.php b/phpBB/includes/functions_acp.php
index ce020fbdf1..8780f8e1eb 100644
--- a/phpBB/includes/functions_acp.php
+++ b/phpBB/includes/functions_acp.php
@@ -107,30 +107,33 @@ function adm_page_header($page_title)
'S_CONTENT_FLOW_END' => ($user->lang['DIRECTION'] == 'ltr') ? 'right' : 'left',
));
- // A listener can set this variable to `false` when it wants to prevent setting of headers
- $adm_page_header_set_headers = true;
+ // An array of http headers that phpbb will set. The following event may override these.
+ $http_headers = array(
+ // application/xhtml+xml not used because of IE
+ 'Content-type' => 'text/html; charset=UTF-8',
+ 'Cache-Control' => 'private, no-cache="set-cookie"',
+ 'Expires' => '0',
+ 'Pragma' => 'no-cache',
+ );
/**
* Execute code and/or overwrite _common_ template variables after they have been assigned.
*
* @event core.adm_page_header_after
* @var string page_title Page title
- * @var bool adm_page_header_set_headers Set to false if phpBB should not
- * set HTTP headers (useful for integrators).
+ * @var array http_headers HTTP headers that should be set by phpbb
*
* @since 3.1.0-RC3
*/
- $vars = array('page_title', 'adm_page_header_set_headers');
+ $vars = array('page_title', 'http_headers');
extract($phpbb_dispatcher->trigger_event('core.adm_page_header_after', compact($vars)));
- if ($adm_page_header_set_headers)
+ if (is_array($http_headers))
{
- // application/xhtml+xml not used because of IE
- header('Content-type: text/html; charset=UTF-8');
-
- header('Cache-Control: private, no-cache="set-cookie"');
- header('Expires: 0');
- header('Pragma: no-cache');
+ foreach ($http_headers as $hname => $hval)
+ {
+ header((string) $hname.': '.(string) $hval);
+ }
}
return;