PHP-скрипт содержит некоторые выходные данные, которые вызывают
Warning: Cannot modify header information - headers already sent (output started at script:line)
когда мы позже попытаемся отправить заголовок перенаправления, но только на живом сервере.
На локальный сервер вывод тоже появляется, но редирект все еще работает.
Таким образом, кажется, что между двумя серверами существует разница в настройке (в ini.php/.htaccess/через ini_set?). Какая настройка может вызвать эту разницу?
Чтобы было понятно: я не хочу подавлять эту ошибку, как раз наоборот: Я хочу, чтобы редирект не работал и на моем локальном сервере.
Не подавляйте и не игнорируйте эти предупреждения. Вы не можете отправлять заголовки после того, как отправили часть тела. Вы можете посмотреть, как работают HTTP-запросы/ответы, чтобы понять, почему это так.
@GrumpyCrouton Вывод текста происходит на обоих серверах (я вижу это локально, когда ввожу оператор exit(), но, тем не менее, перенаправление работает локально. Почему это может быть?
@AlexanderPresber Не знаю, но было бы лучше не отправлять заголовки после того, как вы отправили часть тела, независимо от того, работает это или нет, потому что это не должно работать.
@GrumpyCrouton Я полностью понимаю, просто мой набор тестов работает нормально локально и не видит основной проблемы, потому что эта ошибка почему-то не запускается. Я хочу, чтобы это было.
@AlexanderPresber Да, к сожалению, я понятия не имею, почему это будет работать на вашем локальном сервере:/
@AlexanderPresber Довольно исчерпывающий ответ в разделах с повторяющимися целевыми функциями о том, что в php.ini влияет на это. Можете ли вы обязательно найти время, чтобы прочитать его, и, возможно, отредактировать этот вопрос впоследствии, если пункты, упомянутые там, не работают?
Спасибо @FélixGagnon-Grenier. Теперь я узнал, что ответ на этот вопрос заключается в том, что php_value output_buffering 'on' может вызывать это явление. Я голосую за повторное открытие вопроса, потому что это явно нет об ошибке фиксация, но в первую очередь о том, как убедиться, что появляется ошибка.






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