Как я могу перенаправить в PHP без ошибок заголовка?

Я вижу две опции:

1) Реализация Ваш собственный IViewEngine и набор свойство ViewEngine Контроллера Вы используете для своего ImageViewEngine в Вашем желаемом методе "изображения".

2) Использование представление:-). Просто измените тип контента и т.д.

5
задан JasonDavis 10 August 2009 в 15:22
поделиться

6 ответов

Разве вы не можете просто сделать это:

<?php
validlogin($url); // call the function here
include ('header.inc.php');
include ('SOME-FILE-HERE.php');
include ('footer.inc.php');
?>

Или поместите включаемые файлы в каждый из файлов типа «НЕКОТОРЫЙ-ФАЙЛ-ЗДЕСЬ», если это возможно, так что вы закончите вместе с:

<?php
validlogin($url); // call the function here
include ('header.inc.php');
?>

<h1>Page heading</h1>
...page content etc...

<?php
include ('footer.inc.php');
?>
2
ответ дан 18 December 2019 в 13:17
поделиться

Используйте ob_start () в первой строке даже до включения. так что вы можете установить заголовки в любое время.

10
ответ дан 18 December 2019 в 13:17
поделиться

Пока у вас нет вывода сценария перед функцией header (), все будет в порядке. Убедитесь, что нет эха или пробелов. Также может помочь размещение ob_start () в начале. иногда есть невидимые пробелы - может помочь изменение формата вашего документа на ANSI или Unicode!

В качестве примечания (хотя я думаю, вы уже знаете) заголовок не завершает скрипт, поэтому exit () (который у вас есть) определенное требование.

0
ответ дан 18 December 2019 в 13:17
поделиться

Записываются ли файлы footer.inc.php и SOME-FILE-HERE.php в поток ответов немедленно? Потому что в этом случае это не сработает, поскольку вы уже что-то написали перед отправкой заголовков.

0
ответ дан 18 December 2019 в 13:17
поделиться

Как уже упоминалось другими, используйте параметр ob_start () или output_buffer для буферизации вывода. Кроме того, с моей точки зрения, не рекомендуется выводить контент в середине функционального кода, но это уже другая тема.

Вы можете найти дополнительную информацию в Google или в этой статье о буферизации вывода в PHP .

0
ответ дан 18 December 2019 в 13:17
поделиться

Вам необходимо буферизовать вывод, чтобы заголовок HTTP не отправлялся на первом выводе. Вы можете буферизовать любой вывод неявно, включив ouput_buffering , или явно, вызвав ob_start . Но последний должен вызываться перед первым выводом, так что в идеале в первой строке скрипта, который был первоначально вызван.

0
ответ дан 18 December 2019 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: