Avatar billede pfp Nybegynder
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
Avatar billede eagleeye Praktikant
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
Avatar billede hells Nybegynder
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.
Avatar billede sukos Juniormester
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])
Avatar billede eagleeye Praktikant
10. november 2002 - 17:34 #4
Eller med inStr:

If inStr(1,var_from, "test.asp") > 0 then
Avatar billede pfp Nybegynder
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.
Avatar billede pfp Nybegynder
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
Avatar billede pfp Nybegynder
10. november 2002 - 17:48 #7
Men det virker desværre ikke.
Avatar billede eagleeye Praktikant
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
Avatar billede pfp Nybegynder
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
Avatar billede hells Nybegynder
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
Avatar billede pfp Nybegynder
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
Avatar billede loss Nybegynder
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 ?
Avatar billede pfp Nybegynder
10. november 2002 - 21:23 #13
loss -> Nej. Variablen var_from indeholder f.eks. "http://localhost/cms/login.asp"

Og http://localhost/cms/login.asp er ikke lig med login.asp
Avatar billede hells Nybegynder
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
%>
Avatar billede pfp Nybegynder
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
Avatar billede hells Nybegynder
10. november 2002 - 21:31 #16
udskift linie 3 med:
var_tal = UBound(var_from)
var_from = "" & var_from(var_tal) & ""
Avatar billede loss Nybegynder
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...
Avatar billede pfp Nybegynder
10. november 2002 - 21:33 #18
loss -> Nej. Det kan jeg ikke, da systemet skal bruges på flere forskellige hjemmesider.
Avatar billede pfp Nybegynder
10. november 2002 - 21:34 #19
hells -> Stadig samme fejl. Nu bare i linie 4.
Avatar billede hells Nybegynder
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
%>
Avatar billede pfp Nybegynder
10. november 2002 - 21:40 #21
hells -> Nu bliver jeg bare sendt tilbage til login.asp selvom jeg kommer fra login.asp
Avatar billede pfp Nybegynder
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
%>
Avatar billede hells Nybegynder
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))
Avatar billede pfp Nybegynder
10. november 2002 - 21:46 #24
Okay, det virker desværre bare ikke :-(
Avatar billede pfp Nybegynder
10. november 2002 - 21:46 #25
Men tak for forsøget
Avatar billede loss Nybegynder
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
Avatar billede pfp Nybegynder
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.
Avatar billede loss Nybegynder
10. november 2002 - 22:15 #28
streng = Request.ServerVariables("HTTP_REFERER")

streng = right(streng ,9)

burde det ikke virke?
Avatar billede loss Nybegynder
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
Avatar billede pfp Nybegynder
10. november 2002 - 22:31 #30
Tadaa! Det virker. Omend ikke en smuk løsning så da en funktionel løsning :-)
Avatar billede loss Nybegynder
10. november 2002 - 22:32 #31
hehe..... det kan jeg kun give dig ret i :)... takker..
Avatar billede pfp Nybegynder
10. november 2002 - 22:32 #32
Det er mig der takker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester