[ticket/7782] Send status line using refactored download/file.php logic.

PHPBB3-7782
This commit is contained in:
Oleg Pudeyev 2010-05-16 18:24:26 -04:00
parent 6d7e30ae99
commit c1a4cb1d01
2 changed files with 23 additions and 10 deletions

View file

@ -670,15 +670,7 @@ function set_modified_headers($stamp, $browser)
{ {
if ($last_load !== false && $last_load >= $stamp) if ($last_load !== false && $last_load >= $stamp)
{ {
if (substr(strtolower(@php_sapi_name()),0,3) === 'cgi') send_status_line(304, 'Not Modified');
{
// in theory, we shouldn't need that due to php doing it. Reality offers a differing opinion, though
header('Status: 304 Not Modified', true, 304);
}
else
{
header('HTTP/1.0 304 Not Modified', true, 304);
}
// seems that we need those too ... browsers // seems that we need those too ... browsers
header('Pragma: public'); header('Pragma: public');
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 31536000)); header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 31536000));

View file

@ -2578,6 +2578,27 @@ function meta_refresh($time, $url, $disable_cd_check = false)
return $url; return $url;
} }
function send_status_line($code, $message)
{
if (substr(strtolower(@php_sapi_name()),0,3) === 'cgi')
{
// in theory, we shouldn't need that due to php doing it. Reality offers a differing opinion, though
header("Status: $code $message", true, $code);
}
else
{
if (isset($_SERVER['HTTP_VERSION']))
{
$version = $_SERVER['HTTP_VERSION'];
}
else
{
$version = 'HTTP/1.0';
}
header("$version $code $message", true, $code);
}
}
//Form validation //Form validation
@ -3623,7 +3644,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
if ($msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER') if ($msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER')
{ {
header("HTTP/1.x 404 Not Found"); send_status_line(404, 'Not Found');
} }
$msg_text = (!empty($user->lang[$msg_text])) ? $user->lang[$msg_text] : $msg_text; $msg_text = (!empty($user->lang[$msg_text])) ? $user->lang[$msg_text] : $msg_text;