Przyszło coś dziwnego podczas migracji na mój nowy serwer.Zdolność do echa przed nagłówkiem()
Mam skrypt, który przekieruje użytkowników do innej strony internetowej na podstawie określonych warunków. To, co robiłem, polega jednak na "przekierowaniu ...", a następnie użyciu funkcji header() w celu rzeczywistego przekierowania. Oto jak wyglądał kod:
if($condition) {
echo 'Redirecting...';
header('Location: ' . $url);
}
Teraz dopiero zauważyłem, że jest to błędne po przełączeniu na naszym nowym serwerze, przetestował go i zobaczył, że to nie tylko przekierowanie przekierowanie wyjścia ... i kiedyś przeszukałem go, nauczyłem się, że nie możesz mieć żadnego wyjścia (chyba że używasz ob_start etc) przed użyciem funkcji header().
Pytanie brzmi: dlaczego ten kod, który NIE powinien działać w ŻADNEJ instalacji PHP, działa na moim starym serwerze? Przekieruje z echa przed header() bez problemu.
Dzięki!
Wierzę, że można włączyć buforowanie wyjścia domyślnie w php.ini. Wadą jest to, że całe żądanie musi się zakończyć, zanim jakiekolwiek dane wyjściowe zostaną przesłane do użytkownika. – meagar