Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] strona wielojezyczna, URL, GET
spectron
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


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
Go to the top of the page
+Quote Post
dadexix
post
Post #2





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


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


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
spectron
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


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
Go to the top of the page
+Quote Post
Lion_87
post
Post #4





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


A nie możesz tak:

<?php
<a href=?lang=pl>pl</a>
?>

Ten post edytował Lion_87 22.12.2007, 11:26:21
Go to the top of the page
+Quote Post
spectron
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


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.
Go to the top of the page
+Quote Post
Lion_87
post
Post #6





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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>";
}


?>

Ten post edytował Lion_87 22.12.2007, 14:54:13
Go to the top of the page
+Quote Post
spectron
post
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


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

Pozdro i Wesolych Swiat
Go to the top of the page
+Quote Post
matix
post
Post #8





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


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


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
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 Aktualny czas: 21.08.2025 - 17:37