Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z funkcja header w ie
Forum PHP.pl > Forum > Przedszkole
logas
Witam mam problem używam funkcji header która działa świetnie na operze i ff lecz w przeglądarce ie w wersji 7 coś nie działa ponieważ gdy użyje tej funkcji wyswietla mi się napis "Program Internet Explorer nie może wyświetlić witryny sieci Web" a oto kawałem skryptu
  1. <?php
  2. $wynik_niszcz = session_destroy();
  3. if (!empty($stary_uzyt))
  4. {
  5. if ($wynik_niszcz)
  6. {
  7. echo 'Wylogowano.<br />';
  8. header('Location:index.php?id=9');
  9. }
  10. else
  11. {
  12.  echo 'Wylogowanie niemożliwe.<br />';
  13.  
  14. }
  15. ?>
dopiero po ponownym odswierzeniu strony zostaje poprawnie wylogowany.Jeszcze dodam że po usunięciu funkcji header ze skryptu strona wyswietla się ,ale nie tak jak bym chciał tongue.gif
Grzyw
  1. <?php
  2. echo 'Wylogowano.<br />';
  3. header('Location:index.php?id=9');
  4. ?>


Nie wiem, czy się nie mylę, ale błąd spowodowany jest chyba tym, że przed wysłaniem nagłówka wysyłasz "wylogowano". Nagłówek musi iść w pierwszej kolejności do przeglądarki.
sniezny_wilk
Może spróbuj z adresem bezpośrednim ? np. http://adres.serwer.pl/index.php?id=9

Czyli:

  1. <?php
  2. echo 'Wylogowano.<br />';
  3. header('Location:http://adres.serwer.pl/index.php?id=9');
  4. ?>





Cytat(Grzyw @ 18.03.2008, 15:20:26 ) *
  1. <?php
  2. echo 'Wylogowano.<br />';
  3. header('Location:index.php?id=9');
  4. ?>


Nie wiem, czy się nie mylę, ale błąd spowodowany jest chyba tym, że przed wysłaniem nagłówka wysyłasz "wylogowano". Nagłówek musi iść w pierwszej kolejności do przeglądarki.


@Grzyw: Przykład z manuala:

  1. <?php
  2. header("Location: <a href=\"http://www.example.com/");&#092;" target=\"_blank\">http://www.example.com/");</a> /* Przekieruj przeglądarkę */
  3. /* Upewnij się, że kod poniżej nie zostanie wykonany po przekierowaniu. */
  4. ?>


header, musi iść jako ostatni.
Piniek
wydaje mi sie ze przed funkcja header nie moze zostac nic wyslane do przeglaraki interenetowej
pozdrawiam winksmiley.jpg
sniezny_wilk
Cytat(Piniek @ 18.03.2008, 15:23:59 ) *
wydaje mi sie ze przed funkcja header nie moze zostac nic wyslane do przeglaraki interenetowej
pozdrawiam winksmiley.jpg


Może smile.gif chyba, że pisząc "nic" - nie masz na myśli dowolnej operacji powodującej output w przeglądarce.
Piniek
chodzilo mi o dowlony znak, litere, spacje etc.. nie o skrypt php czyli instrukcje warunkowe itp ;] ale byc moze sie mylę ;]
EDIT :a z logicznego punktu widzenia to i tak nie ma sensu wysylanie do przeglarki tekstu bo i tak zostanie przekierowany na inna strone winksmiley.jpg
Kicok
logas ma włączone buforowanie w php.ini - inaczej wywalałoby mu błąd a nie wysyłało nagłówków.


PS. Po Location: ma być spacja.
logas
Macie tu cały skrypt wyloguj.php dodam ze nic nie pomaga 
  1. <?php
  2. require_once('funkcje_uzytkownik.php'); 
  3. $stary_uzyt = $_SESSION['prawid_uzyt']; 
  4. unset($_SESSION['prawid_uzyt']);
  5. $wynik_niszcz = session_destroy();
  6. if (!empty($stary_uzyt))
  7. {
  8.   if ($wynik_niszcz)
  9.   {
  10.   Header('Location:index.php?id=9');
  11.       echo 'Wylogowano.
  12. ';
  13.         }
  14.   else
  15.   {
  16.    echo 'Wylogowanie niemożliwe.
  17. ';
  18.   }
  19. }
  20. else
  21. {
  22.   echo 'Użytkownik niezalogowany, tak więc brak wylogowania.
  23. ';
  24.   }
  25. ?>

Cytat
EDIT :a z logicznego punktu widzenia to i tak nie ma sensu wysylanie do przeglarki tekstu bo i tak zostanie przekierowany na inna strone
I tu się mylisz tongue.gif pod id=9 kryje się plik wyloguj.php i gdy nie używam funkcji header to chociaz jestem wylogowany zostaje napis "zalogowany jako logas" znika dopiero gdy odświerze strone i własnie po to robie jeszcze raz przekierowanie do pliku wyloguj.php żeby tego napisu nie było

Juz wiem gdzie jest błąd po prostu ie nie potrafi się przekierować na tą strone która aktualnie jest otwarta sad.gif  sąddzie tak ponieważ zmieniłem
  1. <?php
  2. Header('Location:index.php?id=9'); na Header('Location:index.php?id=1');
  3. ?>
i wszytsko jest ok
Relay
Juz wiem gdzie jest błąd po prostu ie nie potrafi się przekierować na tą strone która aktualnie jest otwarta sad.gif  sąddzie tak ponieważ zmieniłem
  1. <?php
  2. Header('Location:index.php?id=9'); na Header('Location:index.php?id=1');
  3. ?>
i wszytsko jest ok
[/quote]

Jak już potrzebujesz odświeżenia tej strony to wypluj do przeglądarki znacznik meta refresh
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.