2013-11-06 2 views
0

Я студент (не долго занимаюсь PHP, поэтому не знаю много о PHP), но я пытаюсь заставить свой код работать, сначала он работал нормально, пока не перешел на другой сервер, но поскольку он если я получил следующую ошибку:Как мне заставить мою программу работать с функцией ob_start() ;?

Предупреждение: не удается изменить информацию заголовка - уже отправлены заголовки (вывод запущен в /home/deanj/public_html/login.php:21) в/home/deanj/public_html/login .php в строке 60 '.

Затем мне предложили использовать ob_start(); поэтому я попытался использовать его, но не получил много хороших результатов. Так что мне нужно делать, чтобы это использовать? и это лучший вариант? если не то, что есть?

p.s. пожалуйста, сделайте это как можно проще.

+0

Вы должны изменить свой сценарий так, чтобы все, что вы делаете в строке 60, было выполнено до строки 21 (потому что, когда документ начал выводиться, вы больше не можете отправлять какие-либо заголовки.) –

+0

Вы положили ob_start() в начале ваш php-файл? – adam187

+3

@adam - это грязное решение проблемы, которая должна быть решена в ее корне. –

ответ

0

В php.ini установите выход буферизации в положение Вкл. Вам не нужно изменять код, используя ob_start(), поскольку это явно проблема среды. Ключ к пониманию того, что в вашем вопросе, «он работал нормально, пока не перешел на другой сервер».

Чтобы исправить это, в файле php.ini вы хотите:

output_buffering = О

http://php.net/manual/en/outcontrol.configuration.php

Это также, вероятно, почему же код работал на одном сервере, а не на ваш новый (поскольку буферизация вывода была настроена по-разному).

+0

Это очень плохое решение проблемы, которая должна быть исправлена ​​в ее корне: изменение логики скрипта, чтобы оно ничего не выводило перед отправкой заголовков. Буферизация вывода делает вывод страницы медленнее –

+0

Я полностью согласен, но как это связано с моим ответом? Мой ответ не меняет логики, он меняет настройку PHP, которая явно отличается между двумя серверами. – VBAssassin

+0

Итак, ваш совет вместо того, чтобы фиксировать актуальную проблему, чтобы активировать обходной путь? Это не обязательно лучший совет для преподавателя PHP и всех остальных, кто смотрит на этот вопрос в будущем. –

Смежные вопросы