webForumDet fria alternativet

Hämta querystring till variabel

9 svar · 420 visningar · startad av Mog

MogMedlem sedan nov. 2003255 inlägg
#1

Tjena !
Jag har en querystring enligt följande;
?id=2&page=3#22
och jag behöver få tag i ankaret (22).
Har testat med $_SERVER['REQUEST_URI'] men på IIS blir den inte satt (Undefined index: REQUEST_URI).
Kollar man phpinfo() finns det ingen variabel som innehåller värdet jag behöver. Det enda jag får tag i är "id=2&page=3" med $_SERVER['QUERY_STRING'].

Nån som har lösningen?

effataMedlem sedan apr. 2008141 inlägg
#2

Ankaret skickas inte med i httpanropet vad jag vet. Du skulle kunna läsa av det med javascript och skicka det i ett xmlhttprequest.

MogMedlem sedan nov. 2003255 inlägg
#3

effata skrev:

Ankaret skickas inte med i httpanropet vad jag vet. Du skulle kunna läsa av det med javascript och skicka det i ett xmlhttprequest.

Har kollat lite på javascript men det funkar inte, jag behöver hämta värdet och göra kontroller med php.

eliassonMedlem sedan juli 200432 inlägg
#4

Mog skrev:

Har kollat lite på javascript men det funkar inte, jag behöver hämta värdet och göra kontroller med php.

Ankaret är helt och hållet klientlagrat och skickas inte på något sätt till servern.
Det du får göra är att hämta detta med Javascript, och parsa det till servern via något script helt enkelt.

MogMedlem sedan nov. 2003255 inlägg
#5

Vad jag har förstått så ska det gå att få fram med REQUEST_URI men bara om webbservern inte är IIS.

effataMedlem sedan apr. 2008141 inlägg
#6

Oavsett om det går eller inte känns det snarare som problemet ligger i att du försöker använda anchor på fel sätt. Anchors är designade för att styra klienten inom samma sida, utan omladdningar. När man kodar mot webben är det viktigt att vara medveten om de standarder som finns och använda dom, inte försöka koda runt dom.
Om det är ajaxladdat material du jobbar med och vill redirecta till det materialets riktiga url vid reload (som t.ex. facebook/gmail), så löser du det lätt med två rader javascript.

Kan också intyga att ankare inte följer med i apache. Så mitt råd är: tänk om.

MogMedlem sedan nov. 2003255 inlägg
#7

Skulle kanske förklarat lite bättre från början :OO

Det är ett forum som problemet gäller och om jag tittar på ett inlägg och kopierar adressen, skickar den till nån annan användare och denne inte har samma antal inlägg/sida så stämmer inte länken.
Jag skickar viewthread.php?id=5&page=2#22 men hans inlägg 22 kommer på sida 3 för jag har fler inlägg/sida.

Jag vill alltså kolla att länken stämmer så han kommer till rätt inlägg.

Finns det nåt annat sätt att göra detta?

eliassonMedlem sedan juli 200432 inlägg
#8

Det du förklarar ovan faller ju även under serverside då sidantal förändras dynamiskt, beroende på hur många inlägg som har skapats i efterhand.

Istället bör du tänka om hur du kan kringgå detta genom att t ex alltid förklara, på servernivå, att sida 1 alltid kommer att ha samma inlägg oavsett om det kommer nya inlägg - försatt att inga meddelanden blir borttagna.

Är det så dessutom att användaren då har en specifik inställning som visar X antal inlägg per sida, så är det inte mycket du kan göra. För att lösa en sådant problem, så måste du även inkludera dina nuvarande inställningar i url'en som du skickar till din vänn - och därmed gör servern en beräkning på vilka inlägg som ska visas beroende på det.

T ex:
?page=3&posts-per-page=10 visar inlägg 21-30 (1-10, 11-20, 21-30, 31-40)
?page=3&posts-per-page=5 visar inlägg 11-15 (1-5, 6-10, 11-15, 16-20)

Förstår du tankesättet?
Jag ser ingen annan lösning om du ska blanda in användarspecifika inställningar per användare, då förutsättningarna blir annorlunda.

drewMedlem sedan mars 2007748 inlägg
#9

Kan du inte ändra i länken du skickar och lägga till post_id? Det skulle ju förenkla dramatiskt.

MogMedlem sedan nov. 2003255 inlägg
#10

drew skrev:

Kan du inte ändra i länken du skickar och lägga till post_id? Det skulle ju förenkla dramatiskt.

Får kanske börja fundera på det.

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb