Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] odwlanie do aktualnego adresu strony
Forum PHP.pl > Forum > Przedszkole
korki
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?
kriqs
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
korki
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
siemakuba
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.
korki
ale nie rozumiem jak mam pozniej sie z linku do tego odwolac skoro na stale masz przypisany lang :/
siemakuba
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.
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.