Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]błąd tylko pod IE
Forum PHP.pl > Forum > Przedszkole
robos85
mam stronę 2 językową. mam flasha który ma 2 linki i przełącza na odpowiednie strony: na adres/lang.php?lang=pl oraz adres/lang.php?lang=en

Po kliknięciu pod każdą przeglądarką oprócz IE wszystko jest ok. IE mi pokazuje błąd 404.
Oto treść pliku lang.php:
  1. <?php
  2. require_once('./includes/main_inc.php');
  3.  
  4. $referer=$_SERVER['HTTP_REFERER'];
  5. $arr=explode('/',$referer);
  6. $last=end($arr);
  7. if($_GET['lang']=="en"){
  8.    header("Location: ".BASEURL.'en/'.$last);
  9.    exit;
  10. }
  11. elseif($_GET['lang']=="pl"){
  12.    header("Location: ".BASEURL.$last);
  13.    exit;
  14. }
  15. else{
  16.    header("Location: ".BASEURL.$last);
  17.    exit;
  18. }
  19. ?>

Adres strony to:
Kod
http://mci-test.ogicom.pl
i tam u góry po prawej jest zmiana języków.
Jak to naprawić?

Dziwne jest to, ze jak wklepię linka bezpośrednio w pole adresu a nie poprzez klikanie - strona pojawia się prawidłowo

ma ktoś jakiś pomysł?
-Matt-
  1. <?php
  2. require_once('./includes/main_inc.php');
  3.  
  4. $referer=$_SERVER['HTTP_REFERER'];
  5. $arr=explode('/',$referer);
  6. $last=end($arr);
  7. if($_GET['lang']=="en"){
  8.   header("Location: ".BASEURL.'/en/'.$last);
  9.   exit;
  10. }
  11. elseif($_GET['lang']=="pl"){
  12.   header("Location: ".BASEURL.$last);
  13.   exit;
  14. }
  15. else{
  16.   header("Location: ".BASEURL.$last);
  17.   exit;
  18. }
  19. ?>


Może spróbuj dodać "/" przed "en".
robos85
nie bo BASEURL ma na końcu "/" :/
I nie mam pojęcia czemu tak się dzieje, że tylko pod IE nie działa:/

jakiś pomysł?
Bo kurcze ręcznie jak spod IE wklepię linka to śmiga, jak zrobię linka w html to działa, ale jak jest link we flashu to już nie działa sad.gifsad.gif
redelek
Cytat(robos85 @ 10.10.2008, 08:38:38 ) *
nie bo BASEURL ma na końcu "/" :/
I nie mam pojęcia czemu tak się dzieje, że tylko pod IE nie działa:/

jakiś pomysł?
Bo kurcze ręcznie jak spod IE wklepię linka to śmiga, jak zrobię linka w html to działa, ale jak jest link we flashu to już nie działa sad.gifsad.gif


Ja guru nie jestem ale sprawdź to BASEURL . Po wpisaniu adresu tego który podałeś i wybraniu pl przekierowuje mnie na http://localhost/mci/lang.php?lang=pl. EN faktycznie przenosi na http://mci-test.ogicom.pl/lang.php?lang=en ale nie działa. Może jakieś uprawnienia do pliku.

A to BASEURL to nie powinno być jako $BASEURL ?

U mnie na FF 3.0 IE 7.0 IE 6.0 SP2 i Opera nie działa to sad.gif

Pozdrawiam
Redelek
robos85
nie, BASEURL jest dobrze bo robione poprzez define();
link jest dobry bo w pasku adresu mi pokazuje poprawny link ale strona nie działa. Jak dam entera tego samego linka w IE to działa, ale jak pisałem, muszę to dać ręcznie :/
Coś nie tak mam może w pliku tym co dałem na początku?

Adresy się we flashu zmieniają bo cały czas coś kombinuję

i dziwne, że pokazuje błąd 404:| skoro plik tam jest i dobrze są zmienne podane.

Może IE ma problem z obsługą$_SERVER['HTTP_REFERER'] w połączeniu z flash?? Bo jak daję echo $_SERVER['HTTP_REFERER']; to mi nie pokazuje nic:|
ucho
Patrzyłeś w logach serwera jaki adres próbuje pobrać IE i czy różni się w przypadku normalnego kliknięcia / wpisania adresu z palca?
robos85
a gdzie to sprawdzić? Tylko mni dziwi, że jak dam zwykły link html to działa, a poprzez flasha nie czyta referera:/
piaseq
Jeżeli korzystasz z apache to w pliku access.log
robos85
nie mam do tego dostepu:/
Maxik
Chyba nie masz wyjścia, musisz sprawdzić przeglądarkę przez skrypt i jeśli IE to po prostu przekierować, na php.net można wyczytać, że nie zawsze referer jest ustawiany.
robos85
zrobiłem zapis do sesji aktualnej strony i przy wejściu na zmianę języka tym właśnie się kieruję.
I działa:)
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.