Во-первых, я ни в коем случае не новичок в PHP или в отправке заголовков. Однако я получаю следующую ошибку:
Warning: Cannot modify header information - headers already sent in /var/www/oraviewer/download/scripts/start.inc on line 30
Warning: Cannot modify header information - headers already sent by (output started at /var/www/oraviewer/download/scripts/start.inc:30) in /var/www/oraviewer/download/scripts/start.inc on line 31
Warning: Cannot modify header information - headers already sent by (output started at /var/www/oraviewer/download/scripts/start.inc:30) in /var/www/oraviewer/download/scripts/start.inc on line 32
3 ошибки, потому что я пытаюсь отправить 3 заголовка.
Я просмотрел все включенные файлы, проверил их на предмет возможной отправки заголовков, новых строк, текста и т. Д. И ничего.
Я привыкла к такого рода ошибкам, сообщая вам, откуда пришел первый отпечаток (см. 2 ошибки, чтобы понять, что я имею в виду), но первая ничего мне не говорит.
Насколько мне известно, ни один из этих файлов не изменился с тех пор, как они работали в последний раз, и, используя резервную копию, они работают нормально. К сожалению, если я заменю их файлами резервных копий, проблема не исчезнет. Я бы выложил файлы, но их около полдюжины, что составляет пару сотен строк.
Итак, мой главный вопрос: что может быть причиной этого, и как я могу отследить, откуда это происходит?
РЕДАКТИРОВАТЬ: 3 строки на 30-32, которые являются конкретные печатные заголовки
header('Content-Type: application/octet-stream');
header('Content="text/plain;charset=ISO-8859-1"');
header('Content-Disposition: attachment; filename="'.$fileName.'"');
Если я закомментирую один, ошибки начинаются со следующего, поэтому я знаю, что это что-то перед этим.
Код перед файлом start.inc в файле getExtract.php:
<?php
include_once "start.inc";
Файл start.inc:
<?php
$extract = $_GET['extract'];
$debug = $_GET['debug'];
include "../../lib/conf.inc";
include $mainsitedir."/lib/db_connect.inc";
include $mainsitedir."/lib/utils.inc";
include "../queries/get_output_file_name.php";
$db_link = connect_db();
$query = "SELECT * FROM extract_wxo_list WHERE extract_id='{$_GET['extract']}'";
$file = db_get_row(db_query($db_link, $query));
$fileName = $file['OUTPUT_FILE_NAME'];
if (!empty($_GET['versiondate'])) {
$sql = "SELECT * FROM version_history WHERE version_start_date = '{$_GET['versiondate']}'";
$vquery = db_query( $db_link, $sql );
if ($vrow = db_get_row($vquery)) {
$splitName = preg_split("/[.]/", $fileName, 2);
$fileName = $splitName[0].'_'.str_replace(".", "", $vrow['VERSION']).'.'.$splitName[1];
}
}
if ( $_GET['debug'] ) {
echo "$fileName<br /><pre>";
} else {
header('Content-Type: application/octet-stream');
header('Content="text/plain;charset=ISO-8859-1"');
header('Content-Disposition: attachment; filename="'.$fileName.'"');
}
date_default_timezone_set('UTC');
?>
4 включения в верхней части совпадают с другими файлами. Они также используют заголовки аналогичным, но менее общим способом, поэтому я могу исключить их как причину.