Cannot modify header information [PHP]

Discussion in 'PHP' started by Osstudio, 11 Oct 2011.

  1. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Всем привет, вот пишу самописный сайт, и при перенаправлении, сервер отвечает:
    Если просто сделать страничку, и написать в ней:
    PHP:
    <?php
    header
    ("Location http://site.ru");
    ?>
    то всё прекрасно работает, но если на сайте используется дополнительный код, то вылезает ошибка, написанная выше.
     
  2. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    полный код дай
     
  3. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Посылать заголовки надо до вывода тела. Даже когда ты одну строчку с эхо делаешь - на автомате определённые заголовки посылаются.
    PHP:
    echo 'Шуруповёрт!';
    header("Location http://site.ru");
    в итоге
    PHP:
    WarningCannot modify header information headers already sent by (output started at ----\----\----\www\index.php:3in ----\-----\------\www\class\refresh.php on line 2
    правильно
    PHP:
    header("Location http://site.ru");
    echo 
    'Шуруповёрт!';
     
  4. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Вообще, в таком случае можно сделать еще и так:
    PHP:
    ob_start();
    echo 
    'Шуруповёрт!';
    header("Location http://site.ru");
    Тогда тоже все будет окей, так как вывод буферизован и ПХП сможет модифицировать пока еще не отосланные заголовки.
     
  5. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Ну да, можно. Ток это костыль дикий ). Через месяц-два уже придётся удивляться, что ж скрипты то через жопу работают )
     
  6. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Ааа, точно, ведь этот кусок тоже инклюдится.. не заметил сначала.. всё сделал, теперь работает ;)
     
    #6 Osstudio, 11 Oct 2011
    Last edited: 11 Oct 2011
  7. Eshkin-Kat

    Eshkin-Kat New Member

    Joined:
    19 Jun 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Хедеры надо писать еще до любого хтмл. ТОгда норм работают.
    Замечал много цмс-ок с этой ошибкой - приходилось самому переделывать. Вот мне интересно: это везде так или у тех кто писал эти цмс-ки все как-то работало?
     
  8. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Может быть, у разработчиков отключён вывод ошибок? :D