Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] strona wielojezyczna
Forum PHP.pl > Forum > Przedszkole
spectron
Witam.

Robie strone dwujezyczna i mam pewien problem. Parametr jezyka przesylam przez URL przy pomocy $_GET, wartosci przypisuje do sesji i cos tam sie dzieje. Mam dwa linki do zmiany jezyka. Do tworznia tych linkow wykorzystuje $_SERVER['REQUEST_URI'] i dodaje "identyfikator" jeszyka. Caly problem w tym ze klikajac w link dodawany jest ident. jezyka tyle razy ile bylo klikniec, bo $_SERVER['REQUEST_URI'] przechowuje caly poprzedni link. Czy da sie to zrobic tak zeby nie powtadzalo mi np index.php?lang=pl?lang=pl?lang=eng itd? Myslalem nad odpowiednim filtrowaniu wartosci $_SERVER['REQUEST_URI'] ale moze jest jakis prostrzy sposob?

A oto kawalek kodu:

to mi sprawdza i ustawia wartosc sesji
  1. <?php
  2. if(!isset($_SESSION['jezyk']))
  3. $_SESSION['jezyk']='pl';
  4.  else
  5.  {
  6. if(isset($_GET['lang']) && ($_GET['lang']=='pl' || $_GET['lang']=='eng'))
  7. $_SESSION['jezyk']=$_GET['lang'];
  8. else
  9.  $_SESSION['jezyk']='pl';
  10.  }
  11. ?>


to link do zmiany

  1. <?php
  2. <a href="'.$_SERVER['REQUEST_URI'].'?lang=pl">pl</a>
  3. ?>


Z gory dzieki za pokoc.
Pozdro
dadexix
Kod
if(!isset($_SESSION['jezyk']))
            $_SESSION['jezyk']='pl';
   else
   {
        if(isset($_GET['lang']) && ($_GET['lang']=='pl' || $_GET['lang']=='eng'))    
            $_SESSION['jezyk']=$_GET['lang'];
        else
           $_SESSION['jezyk']='pl';
   }
zmień to na to:
Kod
if(!isset($_GET['lang'])){
            $_SESSION['jezyk']='pl';} //tu podaj jeżyk domyślny
   else{
        if($_GET['lang']=='pl' || $_GET['lang']=='eng')  {  
            $_SESSION['jezyk']=$_GET['lang'];
}
        else
           $_SESSION['jezyk']='pl';
   }

taka mała zmiana kosmetyczna a pomoże....

co do problemu...
Kod
$jezyk = $_SERVER['request_uri'];
$urlquery = parse_url($jezyk);
$ile = substr_count($urlquery['query'],'lang=');
if ($ile != 0){
$query = preg_replace('/lang=[pleng]{2,3}/','',$urlquery['query']);
$adres = $urlquery['path']."?".$query;
}


najpierw sprawdza czy w adresie w ogóle są jakieś zmienne co do języka potem jeśli są to zmienia wszystkie(nawet jeśli ich np. 5) lang=pl i lang=eng i dalej juz proste:P


Daje jakieś 75% że nie działa... bo ja mam pecha do skryptów... zawsze coś zepsuje co_jest.gif sciana.gif aarambo.gif
spectron
wlasnie w podobny sposob chcialem kombinowac z tym winksmiley.jpg, dlatego pytalem czy jest prostrzy sposob, ale dzieki za zainteresowanie, zaraz lukne czy to dziala a jesli nie to pewnie za jakis czas sie odezwe winksmiley.jpg

Pozdro i Wesloych Swiat winksmiley.jpg
Lion_87
A nie możesz tak:

<?php
<a href=?lang=pl>pl</a>
?>
spectron
mialem tak ale jesli mam strone i kilka paramaetrow w adresie np. index.php?id=1&x=3&y=2 itd i gdy uzywalem
  1. <?php
  2. <a href=?lang=pl>pl</a>
  3. ?>


to po przeladowaniu strony link moj wygladal tak: index.php?lang=pl a pozostale parametry znikaly. a mi chodzi o to zeby wartoscie x,y,id itd nadal byly w linku.
Lion_87
TO MOŻE JEDNAK TAK:

<?

$stronaab=getenv(REQUEST_URI);
$stronaab = str_replace ("?lang=pl", "", $stronaab);
$stronaab = str_replace ("&lang=pl", "", $stronaab);
$stronaab = stripslashes ($stronaab);


$stronaab = strpos($stronaab, "?");

if ($stronaab == 0) {
$plus="?lang=pl";
echo "<a href=$stronaab$plus>bbbbbb</a>";
}
else {
$plus="&lang=pl";
$stronaab=getenv(REQUEST_URI);
$stronaab = str_replace ("?lang=pl", "", $stronaab);
$stronaab = str_replace ("&lang=pl", "", $stronaab);
$stronaab = stripslashes ($stronaab);
echo "<a href=$stronaab$plus>aaaaa</a>";
}


?>
spectron
okej czyli rozumiem ze nie ma banalnego sposobu na rozwiazanie tego tylko trzeba pokombinowac winksmiley.jpg dzieki za zainteresowanie.

Pozdro i Wesolych Swiat
matix
Nie jestem pewien, ale może

  1. <base href="http://twojastrona.pl"/>


rozwiąze sprawę.

A Request_uri został w spokoju przy linkach winksmiley.jpg
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.