Zwykle dzieje się tak, gdy przed rozpoczęciem sesji skrypt generuje niezamierzone dane wyjściowe. Mając obecny kod, możesz spróbować użyć buforowania wyjścia, aby go rozwiązać.
spróbuj dodać wywołanie do ob_start();
funkcja na samej górze skryptu i ob_end_flush();
na samym końcu dokumentu.