Короче говоря, вам нужно запретить PHP выводить что-либо в браузер, прежде чем вы доберетесь до точки, где вы хотите использовать функцию header ().
Это должно быть сделано с помощью осторожных методов программирования,что у вас «нет пустых строк», или сохраните выходные данные PHP в выходном буфере и выведите их только тогда, когда вы готовы к этому.
См. ob_start () и ob_flush () методы.Вы используете ob_start () в начале вашего приложения.Это отключает вывод и сохраняет его в буфере.Когда вы будете готовы начать вывод, используйте ob_flush (), и PHP отправит содержимое буфера в браузер, включая заголовки, которые установлены до этой точки.Если вы не вызываете ob_flush (), то буфер выводится (сбрасывается) в конце скрипта.
Причина, по которой он работает в вашей среде разработки WAMP, скорее всего заключается в том, что буферизация вывода уже включенапо умолчанию в php.ini.Довольно часто эти пакеты «все в одном» включают буфер по умолчанию для первых 4 байтов или около того.Однако, как правило, лучше явно запускать и очищать буфер в вашем коде, так как это требует лучших методов кодирования.