/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problem med Request.ServerVariables("SCRIP~
Fra : Zodiax


Dato : 19-01-04 23:29

Jeg har et website bestående af 2 frames - en menu og noget indhold. På
nogle sider er der en inkludefil der checker om brugeren er logget ind. Den
redirecter så til en login-side hvis brugeren ikke er logget ind. Jeg vil
have at brugeren efter login skal sendes tilbage til den side han oprindelig
ville ind på, og jeg har også læst det indlæg der er skrevet om det for en
lille uge siden.

Mit problem er, at når jeg laver en Request.ServerVariables("SCRIPT_NAME")
på min login-side, så får jeg ikke navnet på den side includefilen er på,
men derimod navnet på min menu i den anden frame. Jeg kan ikke helt forstå
hvorfor, da det jo ikke er mit link i menuen der loader loginsiden.

Er der nogen der kan hjælpe?

--
Zodiax



 
 
Jens Gyldenkærne Cla~ (20-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-04 10:18

Zodiax skrev:

> Jeg har et website bestående af 2 frames - en menu og noget
> indhold. På nogle sider er der en inkludefil der checker om
> brugeren er logget ind.

Er includefilen placeret i menuen eller på indholdssiderne (eller
begge steder)?


> Mit problem er, at når jeg laver en
> Request.ServerVariables("SCRIPT_NAME") på min login-side, så
> får jeg ikke navnet på den side includefilen er på, men
> derimod navnet på min menu i den anden frame.

Det lyder som om redirectet sker fra en anden side end du tror. Har
du mulighed for at give et link til siderne?

Giv evt. nogle uddrag af din kode.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Zodiax (20-01-2004)
Kommentar
Fra : Zodiax


Dato : 20-01-04 18:23

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote
> Er includefilen placeret i menuen eller på indholdssiderne (eller
> begge steder)?

Jeg vil lige starte med at sige at jeg har brugt "HTTP_REFERER" og ikke
SCRIPT_NAME som jeg kom til at skrive.

Includefilen er ikke placeret i menuen.

> > Mit problem er, at når jeg laver en
> > Request.ServerVariables("SCRIPT_NAME") på min login-side, så
> > får jeg ikke navnet på den side includefilen er på, men
> > derimod navnet på min menu i den anden frame.
>
> Det lyder som om redirectet sker fra en anden side end du tror. Har
> du mulighed for at give et link til siderne?
>
> Giv evt. nogle uddrag af din kode.

Jeg kan desværre ikke linke til siderne, men her er lidt kode.

Her er koden til linket i min menu, der befinder sig i en frame for sig og
hedder "menu.asp": <a href="test.asp" target="mainFrame">Test</a>

Øverst på "test.asp" er denne kode: <!--#include file="beskyt.asp" -->

Hvis brugeren ikke er logget ind, bliver der lavet en Response.Redirect
"login.asp"

Hvis jeg så på "login.asp" skriver Request.ServerVariables("HTTP_REFERER")
får jeg "menu.asp", hvor jeg er interesseret i at få "test.asp".

Håber det bringer sagen nærmere opklaring.

--
Zodiax





Jens Gyldenkærne Cla~ (20-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-04 19:27

Zodiax skrev:

> Jeg vil lige starte med at sige at jeg har brugt
> "HTTP_REFERER" og ikke SCRIPT_NAME som jeg kom til at skrive.

Det forklarer en del.

Et redirect genererer ikke en refererheader - det der ligger i
HTTP_REFERER er derfor formentlig den side der har linket til din
indholdsside - logisk nok din menu-side.


> Her er koden til linket i min menu, der befinder sig i en
> frame for sig og hedder "menu.asp": <a href="test.asp"
> target="mainFrame">Test</a>

Test.asp vil når du klikker på linket registrere menu.asp som
referer (HTTP_REFERER) - præcis som du har oplevet.



> Hvis brugeren ikke er logget ind, bliver der lavet en
> Response.Redirect "login.asp"

Prøv at skrive:

Response.redirect "login.asp?url=" & _
   Request.ServerVariables("SCRIPT_NAME")

Jeg er næsten sikker på at det vil give test.asp i din querystring
(der er en lille mulighed for at det er includefilen der spyttes ud
- test selv).

> Håber det bringer sagen nærmere opklaring.

Meget.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Zodiax (20-01-2004)
Kommentar
Fra : Zodiax


Dato : 20-01-04 20:55

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote:
<KLIP>
> Prøv at skrive:
>
> Response.redirect "login.asp?url=" & _
> Request.ServerVariables("SCRIPT_NAME")

Tak det hjalp
Nu dukkede der bare et nyt problem op jeg skal fifle lidt med. Nogle af mine
links rundt omkring har querystrings fx. test.asp?ID=1234 - her bliver
brugeren bare smidt tilbage til test.asp efter login, og den går jo ikke.

Jeg takker for hjælpen.

--
Zodiax



Jens Gyldenkærne Cla~ (20-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-04 21:05

Zodiax skrev:

> Nu dukkede der bare et nyt problem op jeg skal fifle lidt med.
> Nogle af mine links rundt omkring har querystrings fx.
> test.asp?ID=1234 - her bliver brugeren bare smidt tilbage til
> test.asp efter login, og den går jo ikke.

Så skal du bare have querystringen med frem og tilbage. Den ligger
selvfølgelig i Request.querystring() - men du skal formentlig
"pakke den ind" så den ikke forveksles med resten af querystringen
til loginsiden. Jeg ville forsøge med Server.URLencode, men jeg har
ikke prøvet om det virker.

En anden mulighed er at lægge adressen i et session-objekt. Så skal
du ikke tænke på at skille to querystrings ad.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Zodiax (21-01-2004)
Kommentar
Fra : Zodiax


Dato : 21-01-04 21:07

Jens Gyldenkærne Clausen wrote:

> Så skal du bare have querystringen med frem og tilbage. Den ligger
> selvfølgelig i Request.querystring() - men du skal formentlig
> "pakke den ind" så den ikke forveksles med resten af querystringen
> til loginsiden. Jeg ville forsøge med Server.URLencode, men jeg har
> ikke prøvet om det virker.

Hmm jeg kan ikke lige gennemskue hvordan det skal gøres. Jeg har jo
forskellige querystrings forskellige steder. Nogle gange er det et ID der
skal på, og andre gange er det måske noget andet, så hvordan dælen får man
det relevante med på sin redirect?

--
Zodiax




Jens Gyldenkærne Cla~ (21-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 21-01-04 23:24

Zodiax skrev:

> Hmm jeg kan ikke lige gennemskue hvordan det skal gøres. Jeg
> har jo forskellige querystrings forskellige steder.

Du får hele querystringen ud med Request.Querystring(). Den kan du
smide i enden på en anden querystring - men du skal nok URLencode
den først. Hvis du lægger den i session er det måske lettere:

<%
   ' logintjek
   If [brugeren er ikke logget ind] Then
       Session("returnURI") = _
           Request.ServerVariables("SCRIPT_NAME") & _
           "?" & Request.Querystring()
       Response.redirect "login.asp"
   End If
%>

I login.asp kan du så hente den igen:

<%
   If [brugeren er blevet godkendt og skal retur] Then
       Dim returnURI
       returnURI = session("returnURI") & ""
       If returnURI = "" Then
           ' Sæt en standard redirectside hvis loginsiden
           ' er kaldt direkte
           returnURI = "default.asp"
       End If
       
       response.redirect (returnURI)
   End If
%>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Zodiax (22-01-2004)
Kommentar
Fra : Zodiax


Dato : 22-01-04 18:54

Jens Gyldenkærne Clausen wrote

> Du får hele querystringen ud med Request.Querystring(). Den kan du
> smide i enden på en anden querystring - men du skal nok URLencode
> den først. Hvis du lægger den i session er det måske lettere:

Perfekt! Tusind tak!

--
Zodiax




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste