diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/common.inc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/includes/common.inc b/includes/common.inc index 2c88fadb6..81f155b21 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -1173,17 +1173,18 @@ function drupal_page_header() { $etag = '"'. md5($date) .'"'; // Check http headers: - $modified_since = isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) ? $_SERVER["HTTP_IF_MODIFIED_SINCE"] == $date : false; - $none_match = isset($_SERVER["HTTP_IF_NONE_MATCH"]) ? $_SERVER["HTTP_IF_NONE_MATCH"] == $etag : false; + $modified_since = isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) ? $_SERVER["HTTP_IF_MODIFIED_SINCE"] == $date : NULL + $none_match = isset($_SERVER["HTTP_IF_NONE_MATCH"]) ? $_SERVER["HTTP_IF_NONE_MATCH"] == $etag : NULL; - // Send appropriate response: - //header("Last-Modified: $date"); - header("ETag: $etag"); - if ($modified_since && $none_match) { + // The type checking here is very important, be careful when changing entries. + if (($modified_since !== NULL || $none_match !== NULL) && $modified_since !== false && $none_match !== false) { header("HTTP/1.0 304 Not Modified"); exit(); } + // Send appropriate response: + header("Last-Modified: $date"); + header("ETag: $etag"); print $cache->data; /* |