Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Z jakiej podstrony przyszedł user
Kshyhoo
post 11.03.2014, 17:07:43
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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?


--------------------
Go to the top of the page
+Quote Post
Mackos
post 11.03.2014, 18:20:22
Post #2





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


No a jakbyś skorzystał z $_SERVER['HTTP_REFERER'] + parse_url() np. tak:
  1. $z = parse_url($_SERVER['HTTP_REFERER']);
  2. print_r($z);


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
Kshyhoo
post 11.03.2014, 19:11:28
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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


--------------------
Go to the top of the page
+Quote Post
Damonsson
post 11.03.2014, 19:16:44
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


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.
Go to the top of the page
+Quote Post
Kshyhoo
post 11.03.2014, 20:05:33
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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


--------------------
Go to the top of the page
+Quote Post
kayman
post 11.03.2014, 20:59:50
Post #6





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


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:/

Ten post edytował kayman 11.03.2014, 21:01:36
Go to the top of the page
+Quote Post
Mackos
post 11.03.2014, 23:23:56
Post #7





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


Kshyhoo pokaż kod jak to implementujesz?
Ogółem zawsze powinieneś korzystać ze ścieżek bezwzględnych zamiast względnych wink.gif


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
Kshyhoo
post 11.03.2014, 23:27:23
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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]."\" ";


--------------------
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 - 20:34