Community Documentation

drupal_set_header

5 common.inc drupal_set_header($header = NULL)
6 common.inc drupal_set_header($header = NULL)

Set an HTTP response header for the current page.

Note: When sending a Content-Type header, always include a 'charset' type, too. This is necessary to avoid security bugs (e.g. UTF-7 XSS).

▾ 14 functions call drupal_set_header()

blogapi_rsd in modules/blogapi/blogapi.module
drupal_access_denied in includes/common.inc
Generates a 403 error if the request is not allowed.
drupal_get_headers in includes/common.inc
Get the HTTP response headers for the current page.
drupal_json in includes/common.inc
Return data in JSON format.
drupal_not_found in includes/common.inc
Generates a 404 error if the request can not be handled.
drupal_site_offline in includes/common.inc
Generates a site off-line message.
file_transfer in includes/file.inc
Transfer file using http to client. Pipes a file through Drupal to the client.
node_feed in modules/node/node.module
A generic function for generating RSS feeds from a set of nodes.
theme_aggregator_page_opml in modules/aggregator/aggregator.pages.inc
Theme the OPML feed output.
theme_aggregator_page_rss in modules/aggregator/aggregator.pages.inc
Theme the RSS output.
theme_install_page in includes/theme.maintenance.inc
Generate a themed installation page.
theme_update_page in includes/theme.maintenance.inc
Generate a themed update page.
_db_error_page in includes/database.inc
Helper function to show fatal database errors.
_drupal_bootstrap_full in includes/common.inc

File

includes/common.inc, line 146
Common functions that many Drupal modules will need to reference.

Code

<?php
function drupal_set_header($header = NULL) {
  // We use an array to guarantee there are no leading or trailing delimiters.
  // Otherwise, header('') could get called when serving the page later, which
  // ends HTTP headers prematurely on some PHP versions.
  static $stored_headers = array();

  if (strlen($header)) {
    header($header);
    $stored_headers[] = $header;
  }
  return implode("\n", $stored_headers);
}
?>

Comments

---

In Drupal 7, the equivalent function is drupal_add_http_header().

Setting no Cache

putting this here so that when I need it again, i will find it i a logical place :P

/* setting up the site to no cache data */
function some_module_name_set_page_headers(){
  drupal_set_header("CacheControl: no-cache");
  drupal_set_header("Pragma: no-cache");
  drupal_set_header("Expires: -1");
}

it is Cache-Control not

it is Cache-Control not CacheControl :)

Same thing in the theme layer

Because I live in the theme layer ->

// put this in template.php
function  theme_name_page_headers(){
  drupal_set_html_head('<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">');
  drupal_set_html_head('<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">');
}

This is very important: you need to call it from the preprocessing page function:
// also in template.php

function theme_name_preprocess_page(&$vars, $hook) {

  theme_name_page_headers();
  $vars['head'] =  drupal_get_html_head();

?>

In case you come across this

In case you come across this in search like I did the equivalent in D7 is drupal_add_http_header.

http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/drupal...

Login or register to post comments