![]() |
![]() ![]() |
![]() |
![]()
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 ? |
|
|
![]()
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)
|
|
|
![]()
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 ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 03:57 |