Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z funkcja header w ie
logas
post 18.03.2008, 15:17:58
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 15.03.2008

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


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
Go to the top of the page
+Quote Post
Grzyw
post 18.03.2008, 15:20:26
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


  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.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
sniezny_wilk
post 18.03.2008, 15:21:55
Post #3





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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.

Ten post edytował sniezny_wilk 18.03.2008, 15:32:37


--------------------
Go to the top of the page
+Quote Post
Piniek
post 18.03.2008, 15:23:59
Post #4





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


wydaje mi sie ze przed funkcja header nie moze zostac nic wyslane do przeglaraki interenetowej
pozdrawiam winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
sniezny_wilk
post 18.03.2008, 15:30:59
Post #5





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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.


--------------------
Go to the top of the page
+Quote Post
Piniek
post 18.03.2008, 15:34:09
Post #6





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


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

Ten post edytował Piniek 18.03.2008, 15:35:31


--------------------
Go to the top of the page
+Quote Post
Kicok
post 18.03.2008, 15:39:37
Post #7





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


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.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
logas
post 18.03.2008, 16:26:42
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 15.03.2008

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


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

Ten post edytował logas 18.03.2008, 15:57:57
Go to the top of the page
+Quote Post
-Relay-
post 15.05.2008, 13:16:00
Post #9





Goście







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
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 12:42