Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][PHP]Problem z przekierowaniem header location mimo output_buffering = 4096
Elber
post
Post #1





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


To nie wina wersji PHP tylko prawdopodobnie kodowania plików - "headers already sent" co oznacza, że przed header został wypisany tekst/białe znaki. Sprawdź czy kodowanie plików jest prawidłowe (np. UTF-8 bez BOM)
Go to the top of the page
+Quote Post
Elber
post
Post #3





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


No właśnie przeleciałem wszystkie pliki i każdy UTF-8 bez bom ;/ pliki spakowałem w tar -czf i potem na nowym rozpakowałem tar -xzf i z tego co widzę wszystkie są prawidłowe

Jak mogę sprawdzić czy któryś z plików nie zawiera "białych znaków" ? jakaś linuxowa komenda czy cos ?

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 (IMG:style_emoticons/default/wink.gif)

Da się sprawdzić jakoś w którym konkretnie pliku były białe znaki ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 03:57