За последние 24 часа нас посетили 16648 программистов и 1627 роботов. Сейчас ищут 1459 программистов ...

Вопрос по header-ам

Тема в разделе "Установка PHP", создана пользователем riaron, 6 мар 2015.

  1. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    в сайте есть несколько файлов php и с каждого отправляются header-ы.При запуске сайта ругается что отправление header-ов невозможна header-ы отправлены с одного из файлов.Что сделать чтобы все работало.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    после отправки заголовков выводить информацию
    можно использовать шаблонитизаторы twig/smarty, framework с шаблонитизаторами symfony2 так как там уже есть реализация накопления заголовков и вывода, чтобы вывести первое потом второе.

    https://php.net/manual/ru/function.ob-start.php

    Код (PHP):
    1. <?php
    2.  
    3. function callback($buffer)
    4. {
    5.   echo $buffer;
    6. }
    7.  
    8. ob_start("callback");
    9.  
    10. ?>
    11. <html>
    12. <body>
    13. <p>Это все равно что сравнить яблоки и апельсины.</p>
    14. </body>
    15. </html>
    16. <?php
    17.  
    18. header('Location: /');
     
  3. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    а другими способами?(поменять настройки среды у меня openserver)(Ходил на курсы php там препод писал заголовки в разных файлах и не использовал obstart(как он это делал не помню) и все работало)
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Не помогут настройки, сначала заголовки, потом информация. ob_start`ы писать совсем не обязательно, как и использовать шаблонизаторы, но тогда нужно просто следить за тем, что бы до заголовков ничего не отправилось на сервер. Кстати, отправка может происходить не только явно, но и "сама по себе", например в конце php-файла вы оставили закрывающий тег ?> (чего делать не нужно) и все что за ним, пускай даже пробел, пойдет в ответ.

    Другими способами, даже если найдете, пользоваться не стоит. Надо сразу привыкать писать правильно, иначе вас может постигнуть страшная участь: вы станете адептом попова и больше никогда не сможете писать нормальный код. Я серьезно )