| | |
| | | +-----------------------------------------------------------------------+ |
| | | | rcube_shared.inc | |
| | | | | |
| | | | This file is part of the RoundCube PHP suite | |
| | | | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | |
| | | | This file is part of the Roundcube PHP suite | |
| | | | Copyright (C) 2005-2007, Roundcube Dev. - Switzerland | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | CONTENTS: | |
| | |
| | | |
| | | |
| | | /** |
| | | * RoundCube shared functions |
| | | * Roundcube shared functions |
| | | * |
| | | * @package Core |
| | | */ |
| | |
| | | */ |
| | | function send_nocacheing_headers() |
| | | { |
| | | global $OUTPUT; |
| | | |
| | | if (headers_sent()) |
| | | return; |
| | | |
| | | header("Expires: ".gmdate("D, d M Y H:i:s")." GMT"); |
| | | header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); |
| | | header("Cache-Control: private, must-revalidate, post-check=0, pre-check=0"); |
| | | header("Pragma: no-cache"); |
| | | // Request browser to disable DNS prefetching (CVE-2010-0464) |
| | | header("X-DNS-Prefetch-Control: off"); |
| | | |
| | | |
| | | // We need to set the following headers to make downloads work using IE in HTTPS mode. |
| | | if (rcube_https_check()) { |
| | | header('Pragma: '); |
| | | header('Cache-Control: '); |
| | | if ($OUTPUT->browser->ie && rcube_https_check()) { |
| | | header('Pragma: private'); |
| | | header("Cache-Control: private, must-revalidate"); |
| | | } else { |
| | | header("Cache-Control: private, no-cache, must-revalidate, post-check=0, pre-check=0"); |
| | | header("Pragma: no-cache"); |
| | | } |
| | | } |
| | | |
| | |
| | | if (!empty($array)) |
| | | foreach ($array as $key => $child) { |
| | | $keys[] = $key; |
| | | if ($children = array_keys_recursive($child)) |
| | | $keys = array_merge($keys, $children); |
| | | foreach (array_keys_recursive($child) as $val) |
| | | $keys[] = $val; |
| | | } |
| | | return $keys; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | ?> |