10. november 2002 - 17:30
Der er
31 kommentarer og 1 løsning
HTTP_REFERER
Hej,
Når jeg redirecter en bruger til en side vil jeg gerne kontrollere at han kommer fra kun en bestemt side, lad os kalde den side for "test.asp"
Altså noge ala:
<%
Dim var_from
var_from = Request.ServerVariables("HTTP_REFERER")
If NOT var_from = "test.asp" then
Response.Redirect "Fejl.asp"
End if
%>
Mit problem her består da bare i at variablen var_from indeholder mere end selve filnavnet. F.eks.
http://localhost/cms/test.asp Derfor virker min if-sætning jo selvfølgelig ikke.
Mit spørgsmål er derfor om jeg skal trimme min variabel så jeg kun har selve filnavnet eller hvordan skal jeg gribe det an?
/peter
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
10. november 2002 - 17:34
#1
Enten kan du bruge InStr eller kan du klippe filnanvet ud..: var_from = Request.ServerVariables("HTTP_REFERER") index = inStrRec(var_from, "/") var_from = Mid(var_from, index+1) Response.write var_from
10. november 2002 - 17:34
#2
If NOT InStr(var_from, "test.asp") then Response.Redirect "Fejl.asp" End if så tjekker den om strengen, "test.asp", findes i var_from.
10. november 2002 - 17:34
#3
kender ikke asp, men du skal selvf. hente hele "linket" domain.dk/dir/dir2/fil.php?dir=0&dir2=2 Så er det dette du skal ha' fat i: /dir/dir2/fil.php?dir=0&dir2=2 I PHP hedder det: $_SERVER['REQUEST_URI']; I asp?(who cares ;O])
10. november 2002 - 17:34
#4
Eller med inStr: If inStr(1,var_from, "test.asp") > 0 then
10. november 2002 - 17:46
#5
eagleeye og hells, jeg kan ikke få nogen af jeres til at virke. Selvom jeg kommer fra den rigtige side bliver jeg blokeret.
10. november 2002 - 17:48
#6
Den kode jeg leget med nu ser sådan ud: <% Dim var_from var_from = Request.ServerVariables("HTTP_REFERER") If InStr(var_from, "Login.asp") then Response.Redirect "Login.asp" End if %> Altså hvis man ikke kommer fra Login.asp så skal man sendes til Login.asp
10. november 2002 - 17:48
#7
Men det virker desværre ikke.
10. november 2002 - 17:49
#8
Hvis det kun eer siden test.asp så kan du gøre sådan her: If inStr(1,var_from, "test.asp",1) = 0 then
10. november 2002 - 17:49
#9
Jeg bliver nød til at smutte nu, det er jo Mortensaften :-) Jeg kigger lige videre omkring kl. 22
10. november 2002 - 17:50
#10
den kode redirecter en til login.asp hvis man kommer derfra. prøv i stedet: If NOT InStr(var_from, "Login.asp") then Response.Redirect "Login.asp" End if
10. november 2002 - 21:16
#11
Jeg får stadig begge jeres koder til at blokere mig. Jeg har to filer: Login.asp Fejl.asp Det er meningen det skal fungere således: Hvis man ikke indtaster de rigtige oplysninger i Login.asp bliver man sendt til Fejl.asp Jeg vil nu bare gerne forhindre at man kan gå til Fejl.asp uden at være kommet fra Login.asp Det har ikke rigtig nok praktisk betydning. Bryder mig bare bedre om at man ikke kan få adgang til fejlbeskeder uden at der er sket en fejl :-) Håber i forstår hvad jeg mener /peter
10. november 2002 - 21:22
#12
<% Dim var_from var_from = Request.ServerVariables("HTTP_REFERER") If var_from <> "login.asp" then Response.Redirect "Login.asp" End if %> burde det ikke virke ?
10. november 2002 - 21:26
#14
så prøv med: <% var_from = Split(Request.ServerVariables("HTTP_REFERER"), "/") var_from = "" & var_from(UBound(var_from)) & "" If var_from <> "login.asp" then Response.Redirect "Login.asp" End if %>
10. november 2002 - 21:29
#15
Der opstod en Microsoft VBScript-kørselsfejl fejl '800a000a' Denne matrix er fast eller midlertidigt låst: 'var_from' /cms/Fejl.asp, linje 3
10. november 2002 - 21:31
#16
udskift linie 3 med: var_tal = UBound(var_from) var_from = "" & var_from(var_tal) & ""
10. november 2002 - 21:32
#17
hehe.. den tænkte jeg sq ikke lige på :)... men du kunne vel bare bruge den komplette sti.. lidt besværligt ja...
10. november 2002 - 21:33
#18
loss -> Nej. Det kan jeg ikke, da systemet skal bruges på flere forskellige hjemmesider.
10. november 2002 - 21:34
#19
hells -> Stadig samme fejl. Nu bare i linie 4.
10. november 2002 - 21:36
#20
<% var_from = Split(Request.ServerVariables("HTTP_REFERER"), "/") var_from1 = var_from(UBound(var_from)) If var_from1 <> "login.asp" then Response.Redirect "Login.asp" End if %>
10. november 2002 - 21:40
#21
hells -> Nu bliver jeg bare sendt tilbage til login.asp selvom jeg kommer fra login.asp
10. november 2002 - 21:42
#22
Kan man ikke trimme Request.ServerVariables("HTTP_REFERER") værdien ned til selve filnavnet (f.eks. Login.asp) og så bruge følgende?: <% If Not min_vaerdi = "Login.asp" then Response.Redirect "Login.asp" End if %>
10. november 2002 - 21:45
#23
det er vist det eagleeyes kode i hans første indlæg gør, og det er også det jeg prøver på med var_from = Split(Request.ServerVariables("HTTP_REFERER"), "/") var_from1 = var_from(UBound(var_from))
10. november 2002 - 21:46
#24
Okay, det virker desværre bare ikke :-(
10. november 2002 - 21:46
#25
Men tak for forsøget
10. november 2002 - 22:01
#26
Hvis der aldrig vil være Querystrings med... kunne du tage de sidste 9 tegn fra HTTP_REFERER (login.asp) og lave en sammeligning på demm
10. november 2002 - 22:03
#27
loss -> Det kunne jo faktisk godt være en løsning. For filerne hedder altid det samme. Det vil jeg lige lege lidt med. Tak.
10. november 2002 - 22:15
#28
streng = Request.ServerVariables("HTTP_REFERER") streng = right(streng ,9) burde det ikke virke?
10. november 2002 - 22:16
#29
<% Dim var_from streng = Request.ServerVariables("HTTP_REFERER") streng = right(streng ,9) If streng <> "login.asp" then Response.Redirect "Login.asp" End if %> Sådan der skulle det hele så gerne se ud
10. november 2002 - 22:31
#30
Tadaa! Det virker. Omend ikke en smuk løsning så da en funktionel løsning :-)
10. november 2002 - 22:32
#31
hehe..... det kan jeg kun give dig ret i :)... takker..
10. november 2002 - 22:32
#32
Det er mig der takker!
Kurser inden for grundlæggende programmering