webForumDet fria alternativet

länk till sida som visas??

ASP

16 svar · 984 visningar · startad av evilaid

Medlem sedan apr. 2009433 inlägg
Frågan#1

Hej

sitter och pular lite på en webbshop och har kommit fram till ett litet dilemma.

säg att besökare kollar på en produkt. då är ju adresssen till den ex: http://www.domän.se/view?artid=dsdsd&cat=3232

kan jag på något sättt fånga upp den adressen.. tanken är den att om kunden tittar på produkt och väljer att logga in (inloggningsformulär finns på sidan) samtidigt så ska denne komma tillbaka till samma produkt (sida)?

vet inte om det går förstå hur jag menar..

Medlem sedan dec. 2004736 inlägg
#2
<%
    Response.Write("http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"))
%>

skriver ut den nuvarande URL:en om jag inte minns fel!

EDIT: La till "http://" & Request.ServerVariables("SERVER_NAME") & i början, URL angav bara sökvägen till sidan, inte serverns adress (https://www.webforum.nu exempelvis).

Medlem sedan okt. 2007446 inlägg
#3

om inloggningsformuläret är synligt på alla sidor så är det ju bara att kasta tillbaka användaren till den sida han "kom ifrån"

helt otestat så borde Request.ServerVariables("HTTP_REFERER") kunna funka
dock är det nånting med att den inte är 100% pga vissa brandväggar (tack för det..)

alternativet är ju att då ha ett hidden-field som du fyller med vilken url man är på vid varje sidbyte.

@Ledel borde inte Request.ServerVariables("URL") räcka?
är man på http://www.domän.se/valfri_url och väljer att logga in då skall man ju tillbaka till just /valfri_url, och gissningsvis ligger loginscriptet på samma domän

Medlem sedan dec. 2004736 inlägg
#4

rhdf skrev:

@Ledel borde inte Request.ServerVariables("URL") räcka?
är man på http://www.domän.se/valfri_url och väljer att logga in då skall man ju tillbaka till just /valfri_url, och gissningsvis ligger loginscriptet på samma domän

Det gör det ju faktiskt :)

Så länge man inte använder subdomäner... ;)

Medlem sedan apr. 2009433 inlägg
#5

njaa

jo jag har funderat på ha en hidden field och skriva ut adressen där för att få med det..

Men Request.ServerVariables("HTTP_REFERER") borde ju faktiskt fungera, har inte varit med om att det är så många brandväggar som spärrar det?

känns som det borde vara det bästa?

Medlem sedan juni 200032 967 inlägg
#6

evilaid skrev:

Men Request.ServerVariables("HTTP_REFERER") borde ju faktiskt fungera, har inte varit med om att det är så många brandväggar som spärrar det?

Det har jag. Massor. Man ska aldrig använda referer i någon funktionalitet (om man inte vet att man kan lita på det, ex. på ett intranät där man vet vilka brandväggar som finns, etc), utan på sin höjd använda det i loggning.

Medlem sedan sep. 2004828 inlägg
#7

Jag har löst det genom att baka in nuvarande url i ett dolt formulärfält

Medlem sedan apr. 2009433 inlägg
#8

tror det blir som du säger stefan, först tänkte jag hänga på det på querystring men det kan nog bli problematiskt..

Får försöka skapa ett dolt fält och bygga om lite så det postas hela tiden istället...

tänkte så här:
<a href="test.asp?cat=11&art=12&backlink=test.asp?cat=11&art=12">test länk</a>

men den fungerat visst inte, krockar ju med alla & och =..

hela shopen är ju uppbyggd på querystrings, hur ska jag då lösa det med ett dolt fält? måste ju på något sätt posta formuläret hela tiden?
Eller tänker jag fel?

Medlem sedan juni 200032 967 inlägg
#9

men den fungerat visst inte, krockar ju med alla & och =..

Du får köra server.urlencode() på innehållet i backlink. Servern kodar tillbaka automatiskt sedan.

Medlem sedan juni 20006 022 inlägg
#10

evilaid skrev:

tänkte så här:
<a href="test.asp?cat=11&art=12&backlink=test.asp?cat=11&art=12">test länk</a>

Kan du göra något i stil med:
<a href="test.asp?cat=11&art=12&backlink=c11a12">test länk</a>

Sen gör du en funktion som gör om "c11a12" till rätt adress och skickar besökare dit.

Medlem sedan apr. 2009433 inlägg
#11

Okey @nders.. Hur menar du att jag använder det då?
alltså server.urlencode(request.querystring("backlink")). men hur menar du att jag läser ut varje variabel då?

Quid: det hade ju varit en sätt, grejen är ju att querystringen kan se lite olika ut varje gång med olika innehåll..

Medlem sedan juni 200032 967 inlägg
#12

typ

<a href="test.asp?cat=11&art=12&backlink=<%=Server.urlencode("test.asp?cat=11&art=12")%>">test länk</a>

Sedan kan du använda request.form("backlink") på mottagande sida - och där har du adressen. Men det känns inte som rätt lösning ändå.

Vad var det för fel på Ledels förslag?

Medlem sedan juni 200032 967 inlägg
#13

Om man lägger på querystrings på Ledels förslag och lägger url:en i en sessionsvariabel så är det enkelt att redirecta tillbaka efter inloggning.

Session("currUrl") = "http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?" & Request.Querystring()

Efter inloggning:

if Session("currUrl") <> "" then Response.redirect Session("currUrl")

Typ.

Medlem sedan juni 20006 022 inlägg
#14

evilaid skrev:

Quid: det hade ju varit en sätt, grejen är ju att querystringen kan se lite olika ut varje gång med olika innehåll..

Ja, men du kan läsa ner din QueryString till loginformuläret och bygga din backlink-kod varje gång.

Medlem sedan apr. 2009433 inlägg
#15

@anders:
<a href="test.asp?cat=11&art=12&backlink=<%=Server.urlencode("test.asp?cat=11&art=12")%>">test länk</a>
tycker detta verkar klockrent för mig om det funkar, varför tyckte du inte det kändes rätt?

Medlem sedan juni 200032 967 inlägg
#16

Om det funkar så är det väl bra, då är det bara att köra på det. :)
Jag hade nog personligen hellre kört på session-varianten tror jag.

mvh

Medlem sedan apr. 2009433 inlägg
#17

Yes

Då kör jag på det, ska prova när jag kommer hem sen:)

tack för all hjälp!

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)