summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc11
1 files changed, 7 insertions, 4 deletions
diff --git a/includes/common.inc b/includes/common.inc
index 4ea42b449..9b8d6fcc6 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -162,13 +162,16 @@ function drupal_get_normal_path($path) {
* @{
*/
function drupal_set_header($header = NULL) {
- static $stored_headers = '';
+ // We use an array to guarantee there are no leading or trailing delimiters.
+ // This can cause header("") to get called when serving the page later, which
+ // ends HTTP headers prematurely on some PHP versions.
+ static $stored_headers = array();
- if (!is_null($header)) {
+ if (strlen($header)) {
header($header);
- $stored_headers .= $header ."\n";
+ $stored_headers[] = $header;
}
- return $stored_headers;
+ return implode("\n", $stored_headers);
}
function drupal_get_headers() {