Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Z jakiej podstrony przyszedł user
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Czy jest jakaś "lepsza" funkcja niż $_SERVER['QUERY_STRING']? Chciałbym wiedzieć, z jakiej podstrony przyszedł user, dokleić to do linku. $_SERVER['QUERY_STRING'] jest niezła, ale klikając w ten sam link x razy, otrzymuję x razy ten sam link:
  1. index.php?page=index&language=italian&language=english&language=polish&language=italian

$_SERVER['HTTP_REFERER'] też jest gut, ale dostaję cały link, włącznie z http, a to mi nie potrzebne smile.gif Oczywiście można by coś w stylu:
  1. if(preg_match('#index.php#is', $_SERVER['HTTP_REFERER'])) {

ale może można inaczej?
Mackos
No a jakbyś skorzystał z $_SERVER['HTTP_REFERER'] + parse_url() np. tak:
  1. $z = parse_url($_SERVER['HTTP_REFERER']);
  2. print_r($z);
Kshyhoo
Trochę lipa, bo dostaję czasem tablicę:
Kod
array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(9) "localhost"
  ["path"]=>
  string(13) "/_g/index.php"
  ["query"]=>
  string(21) "Array&language=polish"
}
Damonsson
Czasem? Problem by był, gdyby parse_url nie zwróciło tablicy biggrin.gif No chyba, że dodasz mu parametr, ale zapewne nie wiesz o co chodzi i go nie dodajesz.
Kshyhoo
No wiem, że zwraca tablicę, ale też tablicę w tablicy:
["query"]=> string(21) "Array&language=polish"

Czyli obchodzi mnie:
  1. $qs = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);


co da mi
Kod
string(46) "page=register&language=polish&language=english"

czyli w linku:
Kod
index.php?page=login&language=english

Dzięki za podpowiedź.

No i za wcześnie otwierałem szampana smile.gif Wciąż dostaję to co wcześniej, powiększający się link za każdym przeładowaniem:
Kod
index.php?page=index&language=italian&language=english&language=polish&language=italian
kayman
imo musisz go budować od początku

przykład

  1.  
  2. function myUrl($url, $params = array()) {
  3. if (!empty($params)) {
  4. $qs = array();
  5. foreach ($params as $key => $value) {
  6. $qs[] = $key . '=' . $value;
  7. }
  8. return $url . '?' . implode('&', $qs);
  9. }
  10. return $url;
  11.  
  12.  
  13. }
  14.  



teraz $url = myUrl('index.php', array('page'=>'any_param', 'lang' => $_GET['lang']));

cuda na kiju są jak myślę mniej wygodne/czytelne

e:/
Mackos
Kshyhoo pokaż kod jak to implementujesz?
Ogółem zawsze powinieneś korzystać ze ścieżek bezwzględnych zamiast względnych wink.gif
Kshyhoo
Już sobie poradziłem (tak myślę ;p):
  1. $qs = $_GET['page'];
  2.  
  3. $content .= " <option style=\"background-image:url(gfx/flags/flag-$languageslist[$i].png);\" value=\"index.php?page=$qs&amp;language=".$languageslist[$i]."\" ";
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.