PHP $_SERVER -> problem s url

Programovacie jazyky, rady, poradňa...
JanJanuska
Medium Expert
Medium Expert
Príspevky: 101
Registrovaný: 13 mar 2007, 21:40
Bydlisko: Malacky, Praha
Kontaktovať používateľa:

PHP $_SERVER -> problem s url

Príspevok od používateľa JanJanuska »

Ahojte, mám taký "menší" problémik.
Mám napr. takúto adresu:

Kód: Vybrať všetko

www.example.com/index.php?premenna=9&strana=10
Potreboval by som ako odkaz vygenerovat zadanu url:

Kód: Vybrať všetko

www.example.com/index.php?premenna=9&strana=11
, resp. ze toto by zostalo rovnake "www.example.com/index.php?premenna=9", len premenna strana by sa zmenila

Nevedel by mi niekto poradiť ako to urobiť čo najefektívnejšie?

Jediné čo ma napadlo je, že by som prešiel pole $_GET, krkolomne ho vypisal s tym, ze $_GET['strana'] by som ignoroval a v odkaze potom dodatocne vypisal...
Alebo by som vytvoril zo $_SERVER['REQUEST_URI'] novy retazec, v ktorom by som nahradil hodnotu premennej "strana".

No tieto riešenia sa mi zdajú dosť krkolomné, neviete o niečom lepšom?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Vygenerovať novú URL z tých GET parametrov mi pripadá najrozumnejšie riešenie (do tej novej URL dáš len to, čo tam byť má, takže nehrozí nejaké XSS, či niečo podobné).
marioff
Amateur
Amateur
Príspevky: 24
Registrovaný: 23 dec 2008, 17:04

Príspevok od používateľa marioff »

urob to cez foreach

Kód: Vybrať všetko

$premenne = "?";
foreach($_GET as $nazov => $obsah) {

if ($nazov!="strana") { $premenne .= "".$nazov."=".$obsah."&"; } else {

// tu si zmen obsah premennej strana ako chces
$premenne .= "".$nazov."=".$obsah."&";
}

}
$vysledok = substr($premenne, 0, -1);
pisem to z brucha , tak sa s tym vyhraj
JanJanuska
Medium Expert
Medium Expert
Príspevky: 101
Registrovaný: 13 mar 2007, 21:40
Bydlisko: Malacky, Praha
Kontaktovať používateľa:

Príspevok od používateľa JanJanuska »

Ok, vďaka za postrehy, tak som nakoniec prebehol to pole $_GET :)


...ah takmer som zabudol hodiť ten mini zdrojak, je to daco podobne ako to od marioff:

Kód: Vybrať všetko

   
   $gety = '?';
   foreach ($_GET as $nazov => $hodnota) {                         
      if ($nazov != $this->nazov_get)
         $gety .= $nazov . '=' . $hodnota . '&'; 
  }
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ale takto ako to máš, ti pripojí znak "&" aj za posledný parameter, teda na koniec url :)
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

a co tak toto?
ak som pochopil si na stranke strana1 a potrebujes na nej odkaz na strana 2

Kód: Vybrať všetko


echo "<a href=\"www.example.com/index.php?premenna=9&strana=".$_GET["strana"]+1."\"></a>";

myslim ze kod je pochopitely

je to odkaz, v href parametri mas tu stranku, napises to tam cele a len icslo menis

kedze cislo si dostal v premennej $_GET["strana"] a chces ho iba o jedno zvecsit / zmensit nieje to problem
JanJanuska
Medium Expert
Medium Expert
Príspevky: 101
Registrovaný: 13 mar 2007, 21:40
Bydlisko: Malacky, Praha
Kontaktovať používateľa:

Príspevok od používateľa JanJanuska »

audiotrack napísal:ale takto ako to máš, ti pripojí znak "&" aj za posledný parameter, teda na koniec url :)
Áno, ale ja na koniec toho výstupu ešte aj tak musím pridať napr. "strana=1". :)
chmirko napísal:a co tak toto?
ak som pochopil si na stranke strana1 a potrebujes na nej odkaz na strana 2

Kód: Vybrať všetko

echo "<a href="www.example.com/index.php?premenna=9&strana=".$_GET["strana"]+1.""></a>";
myslim ze kod je pochopitely
je to odkaz, v href parametri mas tu stranku, napises to tam cele a len icslo menis
kedze cislo si dostal v premennej $_GET["strana"] a chces ho iba o jedno zvecsit / zmensit nieje to problem
Len tá premenná "premenna" neviem, že má hodnotu 9, to číslo môže byť ľubovolné.
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

JANciJ napísal:Len tá premenná "premenna" neviem, že má hodnotu 9, to číslo môže byť ľubovolné.
tak tam miesot tej 9 daj rand(0,100) a mas lubovolne

xxx9xxx - povedzme ze to vyzera takto
xxx".."xxx - tu 9 vyhodime a das tam zlucovanie dve (tie bodky)
a medzi ne das to co tam treba
xxx".rand(0,100)."xxx - takto tam bude random 0 az 100 alebo premenna, sa vyjadri jasne co potrebujes a potom to sprav alebo neviem, no viac poradit nedokazem
JanJanuska
Medium Expert
Medium Expert
Príspevky: 101
Registrovaný: 13 mar 2007, 21:40
Bydlisko: Malacky, Praha
Kontaktovať používateľa:

Príspevok od používateľa JanJanuska »

chmirko napísal:tak tam miesot tej 9 daj rand(0,100) a mas lubovolne

xxx9xxx - povedzme ze to vyzera takto
xxx".."xxx - tu 9 vyhodime a das tam zlucovanie dve (tie bodky)
a medzi ne das to co tam treba
xxx".rand(0,100)."xxx - takto tam bude random 0 az 100 alebo premenna, sa vyjadri jasne co potrebujes a potom to sprav alebo neviem, no viac poradit nedokazem
Nie nie, zle si ma pochopil :o .
Ľubovoľné som nemyslel, že nezáleží na tom aké. Skrátka tá hodnota danej premennej je daná, ale ja neviem dopredu aká bude, napr. mam nejaku podobu url adresy, napr.:

Kód: Vybrať všetko

www.example.com/index.php?premenna=9&strana=10 alebo
www.example.com/index.php?premenna=69&meno=jozo&strana=10
alebo
www.example.com/index.php?premenna=1&strana=10
Skrátka neviem, na akej url adrese daný návštevník je, ale potrebujem urobiť odkaz na rovnakú adresu ako zadal on, len s inou hodnotou "strana"

Ale už som to vyriešil, no aj tak ďakujem :)
Napísať odpoveď