webForumDet fria alternativet

hämta alla querystrings

PHPur PHP

7 svar · 390 visningar · startad av MaRseY

Medlem sedan maj 2001178 inlägg
Frågan#1

Har behov av att kolla vilken upplösning en besökare har för att ordna diverse layouts efter det. Så jag gjorde en funktion i javascript och redirecta till en phpsida som satte upplösningen i en sessionvariabel. Denna javascriptsfunktion körs om sessionsvariablen inte är satt till något än, det vill säga första gången man besöker sidan.

Problemet med detta är att om man vill gå in på en speciell sida, sida.php?var=nat&bla=bla t.ex. så blir man direkt vidarebefodrad till upplösningskollen och till startsidan. Så eftersom man inte kan kolla klientens upplösning med php och sätta variablen utan redirect skulle jag behöva hämta den fullstända adressen man skrivit in. (sida.php?var=nat&bla=bla).

Hur hämtar jag då alla querystrings så att jag kan spara dem till senare och redirecta dit besökaren ville från början istället för till startsidan bara?

Medlem sedan aug. 20002 975 inlägg
#2

Du har dina variabler med värden i arrayen/vektorn $_GET, där variabelnamnet är index till värdet.
Du kan kolla själv med:

echo "<pre>";
print_r($_GET);
echo "</pre>";

Vill du bara ha strängen som finns efter frågetecknet så ligger den i variabeln $_SERVER['QUERY_STRING'].

Medlem sedan sep. 200260 inlägg
#3

Jag har funderat på samma sak innan, hur gör man för att skriva ut värderna efter frågetecknet.

Jag har bara lyckats med att skriva ut "skript.php?värde=nånting" med hjälp av $HTTP_GET_VARS["querysträngnamn"] som kapar allting efter det första värdet. Jag vill ju skriva ut "skript.php?värde=nånting&sida=3&session=abc123"

Finns det inget annat sätt än med $_GET? Finns den med i PHP 4.1.x eller lägre?

Medlem sedan okt. 20023 030 inlägg
#4

nighteye skrev:

Jag har funderat på samma sak innan, hur gör man för att skriva ut värderna efter frågetecknet.

Jag har bara lyckats med att skriva ut "skript.php?värde=nånting" med hjälp av $HTTP_GET_VARS["querysträngnamn"] som kapar allting efter det första värdet. Jag vill ju skriva ut "skript.php?värde=nånting&sida=3&session=abc123"

Finns det inget annat sätt än med $_GET? Finns den med i PHP 4.1.x eller lägre?

Kan

echo $HTTP_SERVER_VARS["REQUEST_URI"];

vara nåt? ;)

Medlem sedan aug. 20002 975 inlägg
#5

Du kan ju också loopa dig igenom din GET-array:

foreach($_GET as $key => $val) {
  echo "$key = $val <br>";
}

För PHP-versioner tidigare än 4.1.0 byter man ut $_GET mot $HTTP_GET_VARS.

Medlem sedan feb. 200399 inlägg
#6

Nexus86 skrev:

Kan

echo $HTTP_SERVER_VARS["REQUEST_URI"];

vara nåt? ;)

Det där har jag aldrig fått att funka... När jag gör så som du visar så skrivs det inte ut nåt...

Medlem sedan okt. 20023 030 inlägg
#7

Morpheus skrev:

Nexus86 skrev:

Kan

echo $HTTP_SERVER_VARS["REQUEST_URI"];

vara nåt? ;)

Det där har jag aldrig fått att funka... När jag gör så som du visar så skrivs det inte ut nåt...

Konstigt. Jag får det alltid att fungera. :l Fast jag har register_globals på och skriver därför bara $REQUEST_URI men det ska ju inte spela någon roll.

Medlem sedan mars 2001593 inlägg
#8

eller testa

echo $_SERVER["REQUEST_URI"];

samma men finare ;)

137 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)