Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem ze zmianą języka strony, wykorzystanie HTTP_REFERER
Forum PHP.pl > Forum > PHP
Czadus
Witam ponownie. Szukałem, ale nie znalazłem jednoznacznej odpowiedzi na forum odnośnie mojego problemu. Na budowanej stronie wstawiłem wersję językową. Jak to działa?? Otóż mam sobie flasha z przyciskami językowymi. Na danym przycisku mam ustawione np. ./?land=en. Wywołuję obecny plik z zadanym parametrem. Wyłapuje to funkcja wywołana na początku każdego pliku. Wygląda ona następująco:

Kod
$adres = $_SERVER['HTTP_REFERER'];
  if(isset($_GET['lang']) AND $_GET['lang']=='en') { $_SESSION['lang']='en'; header("Location: $adres"); }
if(isset($_GET['lang']) AND $_GET['lang']=='pl') { $_SESSION['lang']='pl'; header("Location: $adres"); }


Pod FF oraz Operą wszystko działa poprawnie, ale pod IE oraz Safari już nie bardzo. Wszystko działałoby poprawnie, gdyby nie ostatni element, czyli powrót pod ten sam adres. Różne przeglądarki różnie interpretują HTTP_REFERER i nie we wszystkich działą to poprawnie. IE w tej zmiennej pamięta nie stronę, a adres do animacji FLASH.

Jak to obejść?? Jak zmienić, aby we wszystkich przeglądarkach działało poprawnie?? A może jest inne, lepsze rozwiązanie, aby zmienić wersję językową i aby pozostać w tym samym miejscu na stronie. Dodam jeszcze, że korzystam z jedngo flasha na różnych plikach. Tzn., mam nie tylko index.php, ale również inne, jak section.php, section_1.php... itp.

A może za pomocą sesji pamiętać ten adres??
skowron-line
  1. <?php
  2. function makeLink( $getArr ) {
  3.   $firstPart = $_SERVER[ 'PHP_SELF' ];
  4.  
  5.    if( array_key_exists( 'lang', $getArr )){
  6.        unset( $getArr[ 'lang' ] );
  7.    }  
  8.    foreach( $getArr as $name => $value )
  9.        $secoundPart  .= $name .'='. $value .'&';
  10.      
  11.    return $firstPart .'?'.    substr( $secoundPart,0 ,strlen( $secoundPart ) );
  12.  
  13. }
  14. ?>


  1. <?php
  2. echo'<a href="'. makeLink( $_GET ) .'lang=pl"  id="current" class="lang_link">[ PL ]</a>
  3.        <a href="'. makeLink( $_GET ).'lang=en" class="lang_link">[ EN ]</a>';
  4. ?>

I takim sposobem na każdej stronie możesz zmienić język
Czadus
No ale ja mam flash i w nim mam link do zmiany języka
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.