Avatar billede gurvic Nybegynder
10. oktober 2003 - 09:48 Der er 16 kommentarer og
1 løsning

automatisk videresendelse efter login ved menupunkter

jeg har lavet et system hvor man ved paa menuknapperne automatisk tjekker om man er logget ind. hvis man ikke er gaar man til loginsiden, efter loginsiden ville jeg gerne at man kom ind paa det menupunkt man trykkede paa, hvordan kan man det uden at skulle lave en ny loginside til hver punkt?? giver det nogen mening... ellers spoerg endelig...

i min login ser det saadan ud:

if not rs.EOF then
  if LCase(rs("brugernavn")) = LCase(strBrugernavn) then
    'recordsæt ikke tomt og login ok, sendes til dummy.html
    Session("login") = "JA"
        Session.Timeout = 60
        Response.Redirect("opretbruger.html")
       
  else
            'recordsæt ikke tomt, men indtastede brugernavn og brugernavnet i databasen
            'stemmer ikke overens - der skrives bruger ikke fundet
            Session("login") = "NEJ"
        Session.Timeout = 60
        Response.write("bruger ikke fundet")
  end if

else
        'Der er ikke fundet en bruger med indtastede login og password derfor fejlmeddelse om
        'forkert brugernavn eller kode
        Session("login") = "NEJ"
        Session.Timeout = 60

        Response.write("forkert brugernavn eller kode")
        Response.Redirect("forklogin.html")
end if
Avatar billede mm12010 Nybegynder
10. oktober 2003 - 10:09 #1
Request.ServerVariables("HTTP_REFERER") indeholder url'en til den side brugeren kom fra, du kan altså klare det med:

Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
Avatar billede gurvic Nybegynder
10. oktober 2003 - 10:27 #2
saa gaar den jo hele tiden tilbage til  min login side igen saa det virker ikke
Avatar billede danielmuhlig Nybegynder
10. oktober 2003 - 13:17 #3
Samtidig med at du sender login-formen, gemmer du Request.ServerVariables("HTTP_REFERER") i en session variabel hvis den refererer til en adresse i dit system:

If right(Request.ServerVariables("HTTP_REFERER"), 32) = "http://www.mydomain.dk/dummy.asp" Then
  Session("LastPage") = Request.ServerVariables("HTTP_REFERER")
Else
  Session("LastPage") = ""
End If

Brugeren indtaster data og afsender formularen. Login scriptet validerer data og hvis Session("LastPage") ikke er tom, slettes den og brugeren redirrigeres. Eller sendes brugeren til default siden:

If Session("Lastpage") <> "" Then
  tmp = Session("LastPage")
  Session("LastPage") = ""
  Response.Redirect(tmp)
Else
  Response.redirect("dummy.asp")
End If

...sådan omtrent...
Avatar billede gurvic Nybegynder
10. oktober 2003 - 13:25 #4
undskyld men jeg er nybegynder i asp

hvor skal koden indsættes? og hvad for en adresse er det jeg skal skrive i

If right(Request.ServerVariables("HTTP_REFERER"), 32) = "http://www.mydomain.dk/dummy.asp"

er det opretbruger.asp?
Avatar billede danielmuhlig Nybegynder
10. oktober 2003 - 13:31 #5
Koden skal indsættes i det script, hvor du sender login-formularen og aflæser brugerens indtastning (det samme script eller to forskellige er underordnet). Jeg kan ikke sige, hvilken fil, det er, for du har ikke ret meget om, hvordan dit system er skruet sammen.

Det, der skal sammenligned med, er adressen på dit hjemmeside. Hvis eks. dit side ligger i http://www.mydomain.dk/asp/login.asp så check på teksten http://www.mydomain.dk/asp. Det er for at undgå, at en bruger, der finder din hjemmeside via jubii ikke bliver sendt tilbage til jubii, når han logger ind. Med andre ord bliver brugere, hvor Request.ServerVariables("HTTP_REFERER") er "http://www.jubii.dk" sendt videre til dummy.asp i stedet for hvor de kom fra...
Avatar billede gurvic Nybegynder
10. oktober 2003 - 13:55 #6
ok så langt så godt... nu ligger problemet bare i at jeg har min side i frames
og nu efter login åbner den så selve menuen i min hovedside
altså den åbner menupunkterne og sætter dem ind i min hovedside... gav det nogen mening?
Avatar billede danielmuhlig Nybegynder
10. oktober 2003 - 15:52 #7
Så må du jo redirrigere til den side, der indeholder dit frameset, i stedet for til Session("LastPage").

Så skal du slette denne kode igen:

If Session("Lastpage") <> "" Then
  tmp = Session("LastPage")
  Session("LastPage") = ""
  Response.Redirect(tmp)
Else
  Response.redirect("dummy.asp")
End If

...og i stedet for rette dit frameset til dynamisk at dirrigere til den rigtige hovedside...

If Session("Lastpage") <> "" Then
  tmp = Session("LastPage")
  Session("LastPage") = ""
Else
  tmp = "dummy.asp"
End If

<frameset ...
  <frame name="menu" src="menu.asp">
  <frame name="hovedside" src="<%=tmp%>">
</frameset>
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:58 #8
prøver lige om jeg kan hitte ud af det
Avatar billede gurvic Nybegynder
10. oktober 2003 - 16:13 #9
ok nu virker det så slet ikke... den går hele tiden ind på dummy siden


mit frameset ser sådan ud:

<frameset rows="15%,85%" framespacing="0" border="0" frameborder="1" >
    <frame name="menu" src="Menu.htm" scrolling="no" marginheight=0 marginwidth=0 noresize>
    <frameset cols="15%,85%" framespacing="0" border="0" frameborder="1">
      <frame name="venstremenu" src="vmenukalender.html" scrolling="no" marginheight=0 marginwidth=0 noresize>
      <frame name="main" src="<%=tmp%>" scrolling="no" marginheight=0 marginwidth=0 noresize>
    </frameset>
</frameset>
Avatar billede danielmuhlig Nybegynder
10. oktober 2003 - 16:14 #10
Og hvordan sætter du tmp?
Avatar billede gurvic Nybegynder
10. oktober 2003 - 16:18 #11
hvordan går man det?
Avatar billede danielmuhlig Nybegynder
10. oktober 2003 - 16:25 #12
Det jeg mener er, at du giver mig brudstykker af din kode. Jeg har ingen verdens chancer for at hjælpe, hvis jeg ikke få de nødvendige oplysninger.

Din kode redirrigerer til den side, der er gemt i tmp variablen. Hvordan sætter du værdien af tmp variablen? Der må være en fejl der gør, at tmp altid indeholder "dummy.asp"

Jeg sidder ikke et sted, hvor jeg kan teste asp, så mine kodestumper er muligvis fejlbehæftet. Jeg gav dig dette:

If Session("Lastpage") <> "" Then
  tmp = Session("LastPage")
  Session("LastPage") = ""
Else
  tmp = "dummy.asp"
End If
Avatar billede gurvic Nybegynder
10. oktober 2003 - 16:28 #13
ok forstod ikke lige først hvad du mente
prøver lige igen
Avatar billede gurvic Nybegynder
10. oktober 2003 - 16:32 #14
kan man sætte Session("LastPage") til at være lig det link man lige har trykket på? for må være der fejlen er
Avatar billede danielmuhlig Nybegynder
10. oktober 2003 - 16:36 #15
Ja! Det er jo det man gøri den kode jeg allerede har givet dig:

If right(Request.ServerVariables("HTTP_REFERER"), 32) = "http://www.mydomain.dk/dummy.asp" Then
  Session("LastPage") = Request.ServerVariables("HTTP_REFERER")
Else
  Session("LastPage") = ""
End If

Den sætter Session("LastPage") til at pege på den side, man kommer fra, hvis sidens URL starter med "http://www.mydomain.dk/dummy.asp"
Avatar billede gurvic Nybegynder
10. oktober 2003 - 17:02 #16
ja men jeg tænkte mere den skal jo ikke pege på den side den kommer fra men pege på det link man har trykket på
Avatar billede gurvic Nybegynder
14. oktober 2003 - 08:54 #17
lukker det lige igen
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