Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działające przekierowanie
Forum PHP.pl > Forum > Przedszkole
rafaelpl
Mam następującą funkcję przekierowującą w JS:

  1. <?php
  2. echo '
  3. <script type="text/javascript">
  4. o=document.getElementById('sekundy')
  5. function odliczaj(o,sek)
  6. {
  7. o.innerHTML=sek;
  8. if(sek>0)setTimeout(function(){odliczaj(o,--sek)},1e3)
  9.  
  10. if(sek==0)
  11. {
  12. window.location.href = ''.$url.'';
  13. }
  14. odliczaj(document.getElementById('sekundy'),7)
  15. </script>
  16. ';
  17. ?>


zmienna $url zawiera adres strony.

Niestety pod przeglądarką IE6 zamiast przekierować na adres strony zawarty w $url, pojawia się pusta strona. Dodam, że pod FireFoxem wszystko działa.

Próbowałem w zmiennej $url przekazać pełny adres strony (z http) jak i zwykły index.php, niestety ta zmiana dla przeglądarki pozostawała obojętna.

Z góry dziękuję za pomoc smile.gif
MMX3
nie prościej w php?

<?php
header("Location: http://twojastrona.pl/");
?>
uli
Spróbuj zamiast:

window.location.href

uzyć:

window.location.replace


IE Microsoftu lubi z js wyprawiać cuda biggrin.gif
Cezar708
nie potrzebnie JavaScript, wystarczy za pomocą <meta>
  1. <meta http-equiv="Refresh"
  2. content="5;url=http://www.nowy_adres.pl">
  3. </head>
  4. Przykro nam, ale pod tym adresem witryna już nie istnieje. za 5 sekund nastąpi przekierowanie na <a href="http://www.nowy_adres.pl">http://www.nowy_adres.pl</a>
  5. </body>
  6. </html>
rafaelpl
Cytat(Cezar708 @ 17.01.2008, 16:02:14 ) *
nie potrzebnie JavaScript, wystarczy za pomocą <meta>
  1. <meta http-equiv="Refresh"
  2. content="5;url=http://www.nowy_adres.pl">
  3. </head>
  4. Przykro nam, ale pod tym adresem witryna już nie istnieje. za 5 sekund nastąpi przekierowanie na <a href="http://www.nowy_adres.pl">http://www.nowy_adres.pl</a>
  5. </body>
  6. </html>


Niestety nie mam w tym miejscu dojścia do znaczników <head> strony, więc to rozwiązanie odpada. Mógłbym napisać warunek na stronie głównej, ale wtedy wszystko za bardzo było by zmieszane.

Cytat(MMX3 @ 17.01.2008, 15:29:24 ) *
nie prościej w php?

<?php
header("Location: http://twojastrona.pl/");
?>


Wtedy przekierowywuje bez odliczania, które jest potrzebne do przeczytania komunikatu.

Cytat(uli @ 17.01.2008, 16:00:24 ) *
Spróbuj zamiast:

window.location.href

uzyć:

window.location.replace


IE Microsoftu lubi z js wyprawiać cuda


Rozwiązanie działa, ale... Niestety tylko jeżeli wpisze się czysty adres strony np:
Kod
window.location.replace("http://www.adres.pl/");

Jeżeli użyje się już czegoś takiego (na czym bardzo mi zależy):
Kod
window.location.replace("http://www.adres.pl/gakko/index.php");

To pokazuje pustą stronę, a w pasku adresu widnieje stary adres...
Cezar708
mi zadziałało to:
Kod
setTimeout("document.location.href='http://www.adres.pl/gakko/index.php'",5000)


nawet adresy względne działają
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.