Avatar billede gooz Nybegynder
28. juni 2003 - 01:13 Der er 20 kommentarer og
1 løsning

Få den indtastede URL

Med en Apache server kunne man få den indtastede URL ved hjælp af <!--#echo
var="REQUEST_URI" -->, men det virker ikke med IIS 6.0, er der nogen der ved
hvad det så hedder når man bruger IIS?

Mvh

Daniel
Avatar billede grunken Nybegynder
28. juni 2003 - 01:22 #1
mener du sådan ?

<%
Response.write "http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
%>
Avatar billede gooz Nybegynder
28. juni 2003 - 01:36 #2
Desværre, den spytter kun stien ud på filen den ligger i. Det er noget i stil med Request.ServerVariables("QUERY_STRING"), den skriver forespørgselen ud men desværre også en masse andet.
Avatar billede grunken Nybegynder
28. juni 2003 - 13:47 #3
Okay den linie jeg har lavet viser den indtastede URL:

Hvis du skal have det inklusive query strings skal du gøre sådan!

<%
Response.write "http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?" & Request.ServerVariables("QUERY_STRING")
%>

Ellers fatter jeg ikke en bønne af hvad du vil ha !
Avatar billede gooz Nybegynder
28. juni 2003 - 15:37 #4
Det skal bruges til en 404 fejlmeddelse, hvor man kan se hvilken forspøgsel (url) brugeren tastede ind. F.eks. hvis man taster en forkert url ind på TV2's hjemmeside, kommer den med en 404 hvor man kan hvad man tastede ind i adresse feltet. QUERY_STRING et skridt i den rigtige retningen, hvis man bare kunne fjerne port nummer og HTTP responsstatus.
Avatar billede netro Nybegynder
28. juni 2003 - 15:51 #5
Du kan viderestille til en bestemt side ved fejl 404 (og alle de andre). Det gør du under custom errors i IIS.
Avatar billede nielle Nybegynder
28. juni 2003 - 15:55 #6
Du kan se alle din muligheder med denne lille stump kode:

for each ServerVariable in Request.ServerVariables
  Response.Write(ServerVariable & " = " & Request.ServerVariables(ServerVariable) & "<br>")
next

Bemærk dog at visse variable faktisk vil have en værdi eller ej, alt om brugeren har en firewall installeret hos sig - og hvor paranoidt denne er indstillet.
Avatar billede gooz Nybegynder
28. juni 2003 - 16:27 #7
Det her er det tætteste jeg kan komme:
<%=mid(Request.ServerVariables("QUERY_STRING"), 5)%>
men hvordan fjerner man portnummeret ?
Avatar billede nielle Nybegynder
28. juni 2003 - 16:41 #8
Gider du lige smider et eksempel på et output. Jeg har ikke mulighed for at reproduksere det på den server jeg har adgang til.
Avatar billede gooz Nybegynder
28. juni 2003 - 16:50 #9
Her er et eksempel på et output: "http://test.ozon.lir.dk:80/564/fdg"
Avatar billede nielle Nybegynder
28. juni 2003 - 16:57 #10
Jeg får nu ikke en 404 fejl):

HTTP Error 403.6 - Forbidden: IP address of the client has been rejected.

Det er vist ikke lige den side du sidder og arbejder med.
Avatar billede nielle Nybegynder
28. juni 2003 - 16:59 #11
Ok, så du vil have "http://test.ozon.lir.dk:80/564/fdg" forvanlet til: "http://test.ozon.lir.dk/564/fdg"

Et par øjeblikke.
Avatar billede gooz Nybegynder
28. juni 2003 - 17:01 #12
Det er præcis lige det jeg ønsker! Jeg venter spændt...
Avatar billede nielle Nybegynder
28. juni 2003 - 17:05 #13
X = "http://test.ozon.lir.dk:80/564/fdg"
Pos = InStr(X, ":")

Y = Left(X, P-1) & Right(X, Len(X)-P-2)
Avatar billede nielle Nybegynder
28. juni 2003 - 17:08 #14
Eller hvad med:

X = "http://test.ozon.lir.dk:80/564/fdg"
Y = Replace(X, ":80", "")
Avatar billede nielle Nybegynder
28. juni 2003 - 17:09 #15
1. løsning fungere ved enhver 2-cifret port og 2. løsning fungere kun ved port 80.
Avatar billede gooz Nybegynder
28. juni 2003 - 17:12 #16
Det ser fint ud, men kan jeg lokke dig til at give mig hele ASP kode? Jeg er ikke ligefrem en haj til det her
Avatar billede nielle Nybegynder
28. juni 2003 - 17:18 #17
Og her er den så for en port med et vilkårligt antal cifre:

set regEx = New RegExp

X = "http://test.ozon.lir.dk:80/564/fdg"

regEx.Pattern = ":[0-9]+"
X = regEx.Replace(X, "")
Avatar billede nielle Nybegynder
28. juni 2003 - 17:21 #18
Hele koden? Noget i denne stil?

set regEx = New RegExp

X = Mid(Request.ServerVariables("QUERY_STRING"), 5)

regEx.Pattern = ":[0-9]+"
X = regEx.Replace(X, "")

Response.Write(X)
Avatar billede nielle Nybegynder
28. juni 2003 - 17:22 #19
Jeg er nu ikke sikker på at din Mid holder.
Avatar billede gooz Nybegynder
28. juni 2003 - 17:27 #20
1000000000 TAK! Det var lige det jeg søgte efter!

Men hvordan giver jeg dig point når du har "kommenteret" hele forløbet?
Avatar billede nielle Nybegynder
28. juni 2003 - 17:38 #21
Ved at bede mig om at lægge et svar. ;^)
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