LOADING

PHP : Cannot modify header – решение

  1. Главная страница
  2. Блог
  3. Заметки и статьи
  4. PHP : Cannot modify header – решение

PHP : Cannot modify header – решение

Когда писал php форму для одного статического сайта – столкнулся с такой проблемой: необходим был редирект после подтверждения формы обратно на саму страницу, при этом стандартные функции изменения header и прехода выдавали вот такую ошибку:

Warning: cannot modify header information headers already sent by output started at …

Вызывать джаваскрипт и переходить через window.location = «http://» не хотелось по многим причинам, поєтому пришлось искать решение через php.

Я обошёл немало форумов и руководств, везде были довольно сложные и заковыристые советы, которые при этом не давали нужного результата. Но в итоге, на одном из небольших англоязычных форумов, было найдено простое и удобное решение: с помощью функции ob_start().

Функция ob_start — включает буферизацию вывода. Если буферизация вывода активна, вывод скрипта не высылается (кроме заголовков (headers)) и сохраняется во внутреннем буфере.

Чтобы решить проблему с замечанием достаточно добавить в начало страницы:

<? ob_start(); ?>

И в конец страницы:

<? ob_flush(); ?>

В итоге все переходы, а также обработки сессий работают отлично и без проблем

Leave a comments