Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z header( 'Location: ...
Forum PHP.pl > Forum > PHP
wewior
Witam,
Mam skrypt:
  1. header( 'Location: '.$_SERVER['PHP_SELF'].'?p='.$aActions['f'].'-list&sOption=del' );

który standardowo ładnie przenosi, jednak na jednym z serwerów skrypt zachowuje się dosyć dziwnie bo przenosi tylko jeśli wywalę "exit" za "headerem" lub wpisze tam cokolwiek np "echo 'a';".

Zmienne są jak robie var_dump: string(44) "/sklep/admin.php?p=products-list&sOption=del"
Więc nie wiem w czym jest problem... może spotkaliście się z podobnym przypadkiem lub coś robię źle?
wizu
Może na tym serwerze masz automatycznie odpalane buforowanie wyjścia i przy wywołaniu exit bufor nie jest "wypróżniany".
wewior
Możliwe, właściwie to serwer klienta więc mam ograniczony dostęp do niego ale moge to jakoś potestować, co sugerujesz? flush?
AndyPSV
exit(header('Location: '.$zmienna));

w czym problem?
wewior
Cytat(AndyPSV @ 11.03.2011, 09:02:37 ) *
exit(header('Location: '.$zmienna));

w czym problem?

AndyPSV >> Problem w tym że nie działa na jakimś serwerze jesli jest exit i pytanie dlaczego... oraz jak to rozwiązać bo exit jest wskazany.
wizu >> flush( ) to nie to... moze jakas inna metoda
cudny
Cytat(wewior @ 11.03.2011, 11:10:27 ) *
AndyPSV >> Problem w tym że nie działa na jakimś serwerze jesli jest exit i pytanie dlaczego... oraz jak to rozwiązać bo exit jest wskazany.
wizu >> flush( ) to nie to... moze jakas inna metoda

Spróbuj dać zamiast exit; die; ja zawsze tak robię. A na bank jest to ustawienie servera... wiec może rozważ zmianę smile.gif
I właśnie dla tego miedzy innymi że trzeba się zastanawiać nad takimi pierdułkami (mam nadzieję że to nie wulgaryzm i proszę mnie nie banować biggrin.gif ) korzystam z zenda - tam $this->redirect(); zawsze działa biggrin.gif
redeemer
headers_sent() + headers_list() + Httpfox

Zwykle używam tych trzech rzeczy do debugowania tego typu sytuacji (pomijając logi).


wewior
cudny >> die to samo. Nie byłbym taki pewny $this->redirect(); ten kod o którym pisze też zawsze działał... dopóki nie trafił się ten przypadek. Muszę się dowiedzieć od klienta co to za dostawca.
redeemer >> może nie umiem, ale jak sprawdzić header( "Location ... przy pomocy tych funkcji, rozumiem pozostałe headery, ale akurat Location przeniesie więc nie wiele zobaczymy z takiego debugowania. Jak pisalem wcześniej jeśli wpisze coś między header a exit to przenosi. Do logów niestety nie mam dostępu.
W każdym razie dzięki za pomysły będe jeszcze szukał.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.