Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmiana get pobierając zmienną $_SERVER
piotr485
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Zakładając, ze aktualnie znajduje sie w adresie www.mojastrona.pl/index?wartosc=klucz&wartosc2=klucz2&wartosc3=klucz3 chciałbym zmienic wartosc3 na inna wartosc, zakladajac ze adres pobieramy bezpośrednio poprzez $_SERVER['QUERY_STRING'], a wiec pisze kod:


  1. $adres_get = $_SERVER['QUERY_STRING'];
  2. $nowa_wartosc = klucz57;
  3. $zmieniany_get = $_GET['wartosc3'];
  4. echo '<a href="'.$adres_get.'">Zmiana klucz3 na '.$nowa_wartosc.'</a>';


jakaś trzeba podmienic $zmieniany_get w linku, ale nie mam pojecia jak - moze jakas podpowiedz ?

P.S. chodzi mi tu o inne rozwiazanie niz typu:
  1. echo '<a href="www.mojastrona.pl/index?wartosc=klucz&wartosc2=klucz2&wartosc3='.$nowa_wartosc.'">link</a>';
Go to the top of the page
+Quote Post
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


Musiałbyś rozbić query_stringa do tablicy, a później w tablicy go podmienić, a nastepnie spowrotem tablice połączyć i zwrócić jako string.
Go to the top of the page
+Quote Post
piotr485
post
Post #3





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Cytat(cojack @ 19.08.2009, 15:12:00 ) *
Musiałbyś rozbić query_stringa do tablicy, a później w tablicy go podmienić, a nastepnie spowrotem tablice połączyć i zwrócić jako string.


Hmm ..., a nie ma jakiegoś łatwiejszego sposobu ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(piotr485 @ 19.08.2009, 14:20:38 ) *
Hmm ..., a nie ma jakiegoś łatwiejszego sposobu ?

Nie ma.

Ew. mógłbyś spróbować z wyrażeniami regularnymi preg_replace aby nie rozbijać ciągu. (ale wątpię, że to się uda)

P.S. Jeżeli musisz coś takiego zrobić, to znaczy że coś źle zaprojektowałeś.

Ten post edytował fifi209 19.08.2009, 14:31:24
Go to the top of the page
+Quote Post
cojack
post
Post #5





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


Albo wiedzieć jakie gety się przesyła i po prostu na jana podmienić geta ;] wrzucając do linka gety przesyłane + get zmieniony, ale to mało ciekawe zajęcie.
Go to the top of the page
+Quote Post
#luq
post
Post #6





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Można by użyć substr_replace() ale rozwiązanie oparte o explode() jest o wiele prostsze.
Co za problem napisać sobie funkcję do tego?
Go to the top of the page
+Quote Post
seth-kk
post
Post #7





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


moznaby cos w stylu
  1. function rebuild_current_link(array $newData)
  2. {
  3. $link = $_SERVER['SCRIPT_NAME'] . '?';
  4. foreach($_GET as $key=>$val)
  5. {
  6. if(array_key_exists($key, $newData))
  7. $link .= $key . '=' . $newData[$key] . '&';
  8. else
  9. $link .= $key . '=' . $_GET[$key] . '&';
  10. }
  11. return $link;
  12. }

czy to prostsze sami ocencie (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował seth-kk 19.08.2009, 15:05:21
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale Wy kombinujecie...

parse_url + http_build_query...
Go to the top of the page
+Quote Post
piotr485
post
Post #9





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Cytat(#luq @ 19.08.2009, 15:45:04 ) *
Można by użyć substr_replace() ale rozwiązanie oparte o explode() jest o wiele prostsze.
Co za problem napisać sobie funkcję do tego?


Napisałem coś takiego:

  1. function id_firmy($id_firmy) {
  2. $rozbijanie_firm = explode("&", $adres_get);
  3. echo 'index.php?';
  4. echo $rozbijanie_firm[0];
  5. echo $rozbijanie_firm[1];
  6. echo '&firma='.$id_firmy;
  7. }


ale przy wylowywaniu cos dziwnego wychodzi cos mi sie wydaje ze nie powinno byc tam tego echo jak umieszczam ta funkje w echo tylko nie wiem jak to przerobic
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(erix @ 19.08.2009, 15:06:13 ) *
Ale Wy kombinujecie...

parse_url + http_build_query...



Cytat(piotr485 @ 19.08.2009, 15:14:26 ) *
Napisałem coś takiego:

  1. function id_firmy($id_firmy) {
  2. $rozbijanie_firm = explode("&", $adres_get);
  3. echo 'index.php?';
  4. echo $rozbijanie_firm[0];
  5. echo $rozbijanie_firm[1];
  6. echo '&firma='.$id_firmy;
  7. }


ale przy wylowywaniu cos dziwnego wychodzi cos mi sie wydaje ze nie powinno byc tam tego echo jak umieszczam ta funkje w echo tylko nie wiem jak to przerobic


Przecież masz na tacy...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:14