Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem ze zmianą języka strony, wykorzystanie HTTP_REFERER
Czadus
post 12.09.2008, 08:27:49
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


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??

Ten post edytował Czadus 12.09.2008, 08:29:36
Go to the top of the page
+Quote Post
skowron-line
post 12.09.2008, 08:35:50
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  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


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Czadus
post 12.09.2008, 09:42:13
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


No ale ja mam flash i w nim mam link do zmiany języka
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: 19.07.2025 - 08:31