Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] odwlanie do aktualnego adresu strony
korki
post 9.02.2007, 23:13:51
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 12.07.2006

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


mam sobie stronke i np. przechodze do dzialo jakiegos, adres zmienia mi sie na index.php?mod=products ale stwierdzam ze chcialbym zmienic jezyk, czyli get'em przesylam sobie informacje 'lang'.

i caly problem polega na tym ze nie wiem jak zrobic przekierowanie do tej strony ktora jest aktualnie otwarta a nie do index.php. mam cos takiego:

  1. <?php
  2. echo "[<a href="".$_SERVER['REQUEST_URI']."&lang=pl">PL</a>] | [<a href="".$_SERVER['REQUEST_URI']."&lang=en">ENG</a>]";
  3. ?>


ale jezeli zmienie sobie pare razu jezyk na jednej stronie to robi mi sie balagan:
index.php?mod=product&lang=en&lang=pl&lang=en&lang=pl&lang=en&lang=pl&lang=en

czy mozna to jakos poprawic?? mod_rewrite nie wchodzi w gre....

edit:
dodatkowo po kilkukrotnym kliknieciu zle odczytuje zmienna lang - wiec jakby to poprawic?

Ten post edytował korki 9.02.2007, 23:35:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kriqs
post 10.02.2007, 00:07:45
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 31.05.2006

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


moze sprawdz czy jest juz lang a jak jest to odczytaj sobie QUERY i zamien lang przez wyrazenie regularne ale to juz powie ktos inny smile.gif

pozdrawiam


--------------------
Pozdrawiam
kriqs

mam nadzieje ze pomoglem :)
Go to the top of the page
+Quote Post
korki
post 10.02.2007, 00:28:55
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 12.07.2006

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


zrobilem cos takiego:
  1. <?php
  2. $base = 'http://'.$_SERVER['HTTP_HOST'].''.$_SERVER['PHP_SELF'];
  3. $query = ($_SERVER['QUERY_STRING']=='') ? '?' : '?'.$_SERVER['QUERY_STRING'].'&';
  4.  
  5. echo "[<a href="".$base.$query."lang=pl">PL</a>] | [<a href="".$base.$query."lang=en">ENG</a>]";
  6. ?>


juz sie nie krzaczy przy kliknieciu pare razy na zmiane jezyka, ale niestety dalej adres robi sie troche "przydlugi" po kilkukrotnym kliknieciu
Go to the top of the page
+Quote Post
siemakuba
post 10.02.2007, 01:15:33
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Spróbuj może zbudować zmienną $query tak:
  1. <?php
  2. $query = '';
  3. $queryParams = array();
  4. if (empty($_SERVER['QUERY_STRING']))
  5. {
  6.  $query = '?lang=pl';
  7. }
  8. else
  9. {
  10. parse_str($_SERVER['QUERY_STRING'], $params);
  11. $params['lang'] = 'pl';
  12. // tu mozesz jeszcze sprawdzac czy juz jest w query stringu ten parametr 
  13. foreach($params as $pName => $pValue)
  14. { $queryParams[] = $pName.'='.$pValue;
  15. }
  16. $query = '?'.implode('&', $queryParams);
  17. }
  18. ?>


Może trochę tego wyszło sporo ale powinno problem rozwiązać.

pozdr.
Go to the top of the page
+Quote Post
korki
post 10.02.2007, 01:35:35
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 12.07.2006

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


ale nie rozumiem jak mam pozniej sie z linku do tego odwolac skoro na stale masz przypisany lang :/
Go to the top of the page
+Quote Post
siemakuba
post 10.02.2007, 01:44:32
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


będzie to z pewnością kombinacyjne, ale nie stać mnie o tej porze na lepsze myślenie :)

w linii 6 i 11 mojego kodu powyżej zmień 'pl' na '#LANG#'.
budując linki zrób:

  1. <?php
  2. echo '[<a href="'.$base.str_replace('#LANG#', 'pl', $query).'">PL</a>] | ';
  3. echo '[<a href="'.$base.str_replace('#LANG#', 'en', $query).'">ENG</a>]';
  4. ?>


pozdr.
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 - 19:44