Skocz do zawartości
Elber

Problem z przekierowaniem header location mimo output_buffering = 4096

Polecane posty

Witam,


mam dziwny problem, zapewne coś w konfiguracji php / apache po przeniesieniu na nowy hosting, bo na starym działało poprawnie, wersje PHP na nowym 5.3.38 na starym 5.3.39


Pominę fakt, że kod strony jest dość stary, nieobiektowy.


Jak utworzę sobię plik test.php


gdzie w najpierw wrzucam np. <h1>dasdsad</h1> i po tym <?php header('Location: /'); ?> to wszystko działa prawidłowo,


ale w kodzie strony, gdzie mam index.php, w którym za pomocą require_once() ładuje pliki z funkcjami php na podstawie aktuanego poziomu , oraz niżej konkretne pliki html'a do wyświetlenia treści juz taki header('Location: /') nie działa, wyrzuca błąd


Warning: Cannot modify header information - headers already sent by (output started at index.php:138) in includes/content/index.tpl.php on line 21


linia 138 w index.php to require_once() konkretnego .tpl.php bazując na $_GET a linia 21 w index.tpl.php to właśnie header('Location: /')


Przekierowania zaczynają działać jeśli do index.php na początku i końcu wrzucę odpowiednio ob_start(); i ob_flush();


Wie ktoś może co oprócz output_buffering powinno być jeszcze włączone aby to działało jak na starym serwerze ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Był problem w kodzie z białymi znakami,

 

find ./ -name "*.php" -exec sed -i -e '/^\n*$/d' {} \;
find ./ -name "*.php" -exec sed -i -e 's/\s*$//' {} \;
find ./ -name "*.php" -exec sed -i -e 's/^\s*//' {} \;
rozwiązało problem, ale trochę namieszało w czytelności kodu ;)
Da się sprawdzić jakoś w którym konkretnie pliku były białe znaki ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×