@photosho

Вопрос относительно проблемы отступов перед вызовом localRedirect()?

Разъясните, пожалуйста, кто разбирается, такой вопрос. В файле init.php (Bitrix) подключается один из классов собственного модуля. В этом классе был лишний отступ (между двумя тегами <?php ... ?>), из-за чего перестала работать функция "localRedirect()": убрал отступы, и она заработала. Про эту функцию пишут, что она работает на основе изменения http-заголовков (header), которые можно менять только при отсутствии контента на странице - любые отступы и даже символы BOM в этом случае могут быть критичными.

Но точно так же в файле index.php подключается компонент, в котором вызываю этот самый localRedirect(), а перед подключением компонента выводится разметка (и отступы, соответственно), и перенаправление работает.

Соответственно, хочется знать, в чем разница между отступами в своем классе (подключающемся в init.php) и в файле index.php:

1. Это просто случайность, что при наличии в index.php разметки перенаправление работает - могут повылезать и другие ошибки.

2. Есть разница между этими файлами. Какая - объясню в комментарии.
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
2. Разница в том, что то что выводится в шаблоне сначала буферизуется (в т.ч. для того, чтобы работала установка кук, localRedirect, всякие там отложенные функции и т.п.), а вот init.php исключительно исполняет то, что в нем написано на каждом хите без какой либо буферизации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы