webForumDet fria alternativet

Strul med redirect från querystring (avhugget)

ASP

15 svar · 421 visningar · startad av G8

Medlem sedan jan. 20011 213 inlägg
Frågan#1

Följande kod:

MYMESSAGE = Server.URLEncode("Thank you. You will now be transfered to the topic you just created!<br><br>Please wait...")
Response.Redirect ("delay.asp?DELAY_TIME=3&DELAY_MESSAGE=" & MYMESSAGE & "&REDIRECT_URL=forumthread.asp?id="&ID_For_Inlaggt_amne&"&topic="&ForumTopic&"&topicid="&ForumID&"")

ger en querystring som ser ut så här:
http://mittdomän.kåm/delay.asp?DELAY_TIME=3&DELAY_MESSAGE=Thank+you.+You+will+now+be+transfered+to+the+topic+you+just+created!<br><br>Please+wait...<&REDIRECT_URL=forumthread.asp?id=156&topic=Klubba+%26+Puck&topicid=5

Allt verkar ju således bra, MEN när man blivit omdirigerad till forumthread.asp så är inte hela querystringen kvar... :(

På nått sätt har den kapat ner till att bara vara:
http://mittdomän.kåm/delay.asp?id=157
När den borde se ut så här:
http://mittdomän.kåm/delay.asp?id=157&topic=Klubba+%26+Puck&topicid=5

:q :q :q

Medlem sedan juni 200032 967 inlägg
#2

Hur redirectar du från delay.asp till forumthread.asp då?

Medlem sedan jan. 20011 213 inlägg
#3
<%
DELAY_TIME = Request("DELAY_TIME")
REDIRECT_URL = Request("REDIRECT_URL")
DELAY_MESSAGE = Request("DELAY_MESSAGE")
%>

samt:
<meta http-equiv="Refresh" content="<%=DELAY_TIME %>; URL=<%=REDIRECT_URL %>">

och:
<% =DELAY_MESSAGE %>

funkar ju på alla andra sidor... skumt

Medlem sedan mars 20015 287 inlägg
#4

Men... du plockar ju aldrig dit querystringen topic samt topicid?

Medlem sedan jan. 20011 213 inlägg
#5

Jo då, den koden ligger längre upp på sidan bara...

Om jag bara väljer ett av de tre värdena att ta med så funkar det perfa, spelar ingen roll vilket jag tar. Men när jag tar alla tre, så får jag bara med det första efter att den har gått till delay.asp

Kan det ha nått att göra med i vilken ordning värdena ligger (ska ju inte spela nån roll)?

Medlem sedan jan. 20011 213 inlägg
#6

Förstår om ni blev lite konfunderade, skerv lite fel innan...

edit:

På nått sätt har den kapat ner till att bara vara:
http://mittdomän.kåm/forumthreads.asp?id=157
När den borde se ut så här:
http://mittdomän.kåm/forumthreads?id=157&topic=Klubba+%26+Puck&topicid=5

Hoppas det hjälper till att räta ut ett par frågetecken..

Medlem sedan nov. 20017 144 inlägg
#7

Sätt trim() på din querystring. Är det ett mellanrum i url:en så kommer den inte med.

Medlem sedan jan. 20011 213 inlägg
#8

Jesper T skrev:

Sätt trim() på din querystring. Är det ett mellanrum i url:en så kommer den inte med.

På delay.asp antar jag att du menar, eftersom problemet ligger i att få med hela adressen från den sidan...eller?

Alltså, det här är ju sjukt, inte ens om jag skriver in hela URL:en direkt i "koden" så funkar det, blir ändå samma sak som innan...

skriver jag:

MYMESSAGE = Server.URLEncode("Thank you. You will now be transfered to the topic you just created!<br><br>Please wait...")
Response.Redirect ("delay.asp?DELAY_TIME=3&DELAY_MESSAGE=" & MYMESSAGE & "&REDIRECT_URL=forumthread.asp?id=161&topic=test&topicid=7")

så blir resultatet i querystringen på delay.asp:
http://mittdomän.kåm/delay.asp?DELAY_TIME=3&DELAY_MESSAGE=Thank+you.+You+will+now+be+transfered+to+the+topic+you+just+created!<br><br>Please+wait...&REDIRECT_URL=forumthread.asp?id=161&topic=test&topicid=7

så långt verkar ju allt bra, men när man sedan redirectas från den sidan till forumthread.asp der querystringen ut så här:

http://mittdomän.kåm/forumthread.asp?id=161

Är ju nått juxx med delay.asp då ju..

Medlem sedan nov. 20017 144 inlägg
#9

Testa att skriva &amp; stället för &

Medlem sedan jan. 20011 213 inlägg
#10

Nope, samma sak.. :(

Börjar bli lagom frustrerad nu..bah

Medlem sedan jan. 20011 213 inlägg
#11

Om jag testar att skriva ut <%=REDIRECT_URL%> längre ner på delay.asp så har URL:en strippats ner till att bara innehålla det första värdet, id=XXX alltså..

Men i querystringen så skriver den ju ur hela...

Har testat att ta värdet direkt ifrån querystring istället men det blir samma resultat...

Medlem sedan juni 200032 967 inlägg
#12

När du använder Request("RedirectURL") så hämtas querystringen RedirectURL. Så långt allt ok. Men, du har ju fler querystrings efter ID, och de kommer ju inte med när du hämtar RedirectURL, eftersom de faktiskt inte hör dit.

När du skickar till delay.asp, byt ut alla & i querystringen till något annat, som inte har någon speciell funktionalitet i querystrings. Byt sedan tillbaka när du ska skicka till forumthreads.asp.

Medlem sedan jan. 20011 213 inlägg
#13

Förstår jag dig rätt nu @ så menar du nått åt detta hållet:

MYMESSAGE = Server.URLEncode("Thank you. You will now be transfered to the topic you just created!<br><br>Please wait...")
Response.Redirect ("delay.asp?DELAY_TIME=3&DELAY_MESSAGE=" & MYMESSAGE & "&REDIRECT_URL=forumthread.asp?id=161$topic=test$topicid=7")

Å sedan på delay.asp så kör jag bara en replace $ till & i RedirectURL

Eller?

Jag som trodde den skulle ta HELA URL:en..

Men, om jag bygger en funktion som plockar upp CurrentURL() istället, får jag med hela då? Har ju en sådan funktion för när man loggar in, så att man kommer tillbaka till samma sida som man var på när man fylde i anv. namn å lösen.. Borde ju funka att göra så..

Ja ja, får testa när jag kommit hem igen

Tack @

Medlem sedan juni 200032 967 inlägg
#14

Eller?

Japp, det var så jag menade.

Jag som trodde den skulle ta HELA URL:en..

Varför skulle den det? Titta på URL:en nedan:

http://foo.bar/default.asp?ID=blah&festis=apelsin&kolsyra=nej

&-tecken är tecken som separerar querystringar. Jag skulle bli apförbannad om Request.Querystring("ID") skulle resultera i blah&festis=apelsin&kolsyra=nej.

mvh

Medlem sedan apr. 20031 660 inlägg
#15

HEJ!

@nders skrev:

Jag skulle bli apförbannad om Request.Querystring("ID") skulle resultera i blah&festis=apelsin&kolsyra=nej.

Det skulle jag också bli, vilket bry x(

Skriv Request.Querystring() på lämpligt ställe.

Det finns också en servervariabel som innehåller allt, Request.ServerVariables("QUERY_STRING").

Medlem sedan jan. 20011 213 inlägg
#16

Fixade det så här istället, så slipper jag ändra nått på delay.asp..

Redirect_URL = Server.URLencode("forumthread.asp?id="&ID_For_Inlaggt_amne&"&topic="&ForumTopic&"&topicid="&ForumID&"")

MYMESSAGE = Server.URLEncode("Thank you. You will now be transfered to the topic you just created.<br><br>Please wait...")
Response.Redirect ("delay.asp?DELAY_TIME=3&DELAY_MESSAGE="&MYMESSAGE&"&REDIRECT_URL="&Redirect_URL&"")

Funkar perfa nu :)

Tack för hjälpen allihopa

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)