Avatar billede peterpeter Seniormester
12. oktober 2009 - 14:02 Der er 11 kommentarer og
1 løsning

Èn password side, til flere underliggende sider

Kære alle

Jeg skal lave 5 sider, der alle er password beskyttet. Siderne skal blot liste nogle filer.

MEN - fra login siden, skal man, afhængig af hvilket navn og password der indtastes, hen til ens egen beskyttede side....

Hmm.. Lyder måske lidt sort ;-)

Forklarer endnu engang:

Der er 5 brugere, med hver deres brugernavn og password (disse er bestemt af mig).
Der er én login side.
Når man har logget sig ind, skal man videreføres til netop den side, som præcis det brugernavn har adgang til !!

;-)

Jeg havde tænkt mig at anvende følgende kode:
http://www.html.dk/tutorials/asp/lektion12.asp#password

Men - Hvordan udbygges denne lige, så der kan være flere brugere ???

På forhånd tak for hjælpen.

/Peter
Avatar billede keysersoze Guru
12. oktober 2009 - 17:32 #1
Den lette løsning er at udvidde if-sætningen med nogle elseif - på den måde kan du tjekke flere brugere og sende dem hvert sit sted hen. Den optimale løsning er at benytte en database, fx som her; http://activedeveloper.dk/articles/88/
Avatar billede peterpeter Seniormester
16. oktober 2009 - 11:25 #2
Tak
OK - har kigget koden igennem...
Men - Jeg skal jo til forskellige sider, afhængig af, hvilket navn og kode der tastes ind !!
Det sker jo ikke i eksemplet fra activedeveloper.dk ??

Det er i princippet underordnet om det er en DB løsnng eller ej, bare det er nemt at gå til ;-)

...øv - havde troede det var et nemt spørgsmål.

Håber lige på lidt mere hjælp ;-)

Fortsat god dag & God Week-end

/Peter
Avatar billede keysersoze Guru
16. oktober 2009 - 19:33 #3
korrekt - eksemplet skal, som nævnt, udviddes for at virke efter hensigten og helt som du tror er det langt fra verdens sværeste spørgsmål men det løser trods alt ikke sig selv. lidt pseudo-kode ud fra dit oprindelige eksempel;

If Request.Form("login") = "asp1" AND Request.Form("password") = "asp1" Then
  Session("login1") = "JA"
  Session.Timeout = 30
  Response.Redirect("side1")
ElseIf Request.Form("login") = "asp2" AND Request.Form("password") = "asp2" Then
  Session("login2") = "JA"
  Session.Timeout = 30
  Response.Redirect("side2")
End If
Avatar billede peterpeter Seniormester
19. oktober 2009 - 15:33 #4
Kære keysersoze
Tak for dit svar.
Jeg har nu prøvet at integrere din kode ind i eksemplet, der er desværre bare fejl....
Jeg har prøvet - efter bedste evne - ar rette rundt omkring, dog uden held ;-)

Kan du se hvor jeg har fejlet ??

Tak

/Peter

formular.asp

<html>
<head>
<title>tid og dato</title>
</head>
<body>
<form method="post" action="login.asp">
<p>Login:<input type="text" name="login">
<p>Password:<input type="text" name="password">
<p><input type="submit" value="luk mig ind">
</form>
</body>
</html>

login.asp

<html>
<head>
<title>tid og dato</title>
</head>
<body>
<%
' Tjek om login og password er korrekte
If Request.Form("login") = "asp1" AND Request.Form("password") = "asp1" Then
  Session("login1") = "JA"
  Session.Timeout = 30
  ' Response.Redirect("side1")

  Response.Write "<h1>Du er nu logget korrekt ind på side 1</h1>"
  Response.Write "<p><a href='dokument1.asp'>Link til beskyttet dokument1.asp fil</a></p>"

ElseIf Request.Form("login") = "asp2" AND Request.Form("password") = "asp2" Then
  Session("login2") = "JA"
  Session.Timeout = 30
  ' Response.Redirect("side2")
  Response.Write "<h1>Du er nu logget korrekt ind på side 2</h1>"
  Response.Write "<p><a href='dokument2.asp'>Link til beskyttet dokument2.asp fil</a></p>"

End If

Else

' Hvis forkert sættes ingen session til NEJ
  Session("login") = "NEJ"
  Session.Timeout = 30
  Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
  Response.Write "<p><a href='dokument.asp'>Link til beskyttet fil</a></p>"

End If
%>
</body>
</html>

dokument1.asp

<%
' Hvis brugeren ikke er logget rigtigt på
' sendes han/hun direkte til formularen
If Session("login1") <> "JA" Then
  Response.Redirect "formular.asp"
End If
%>
<html>
<head>
<title>tid og dato</title>
</head>
<body>
<h1>Dette dokument er beskyttet</h1>
<p>Du kan kun se det hvis du er logget på.</p>
</body>
</html>

dokument2.asp

<%
' Hvis brugeren ikke er logget rigtigt på
' sendes han/hun direkte til formularen
If Session("login2") <> "JA" Then
  Response.Redirect "formular.asp"
End If
%>
<html>
<head>
<title>tid og dato</title>
</head>
<body>
<h1>Dette dokument er beskyttet</h1>
<p>Du kan kun se det hvis du er logget på.</p>
</body>
</html>
Avatar billede keysersoze Guru
19. oktober 2009 - 18:06 #5
og fejlen er?
Avatar billede peterpeter Seniormester
20. oktober 2009 - 10:23 #6
Tak - jeg tolker dit svar som om, det meste er rigtigt, men der kun er en lille fejl ;-)

Jeg kører formular.asp og indtaster asp1 / asp1

- og følgende kommer frem:

The page cannot be displayed
There is a problem with the page you are trying to reach and it cannot be displayed.

--------------------------------------------------------------------------------

Please try the following:

Click the Refresh button, or try again later.

HTTP 500.100 - Internal Server Error - ASP error
Apache

--------------------------------------------------------------------------------

Technical Information (for support personnel)

Error Type:
Sun ONE ASP VBScript compilation (0x800A0401)
Syntax error, unexpected "Else ", expecting end of statement
/testafkode/login.asp, line 29, column 1

Browser Type:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Page:
POST 24 bytes to /testafkode/login.asp

POST Data:
login=asp1&password=asp1

Time:
Tuesday, October 20, 2009, 10:20:11 AM


More information:
Sun ONE Active Server Pages Support
Avatar billede peterpeter Seniormester
20. oktober 2009 - 10:23 #7
På forhånd tak for hjælpen...
;-)
/Peter
Avatar billede keysersoze Guru
20. oktober 2009 - 21:23 #8
fejlmeddelelsen siger næsten sig selv - antallet af if/elseif/else/endif stemmer ikke overens. Din end if i login.asp skal væk.
Avatar billede peterpeter Seniormester
20. oktober 2009 - 23:34 #9
Mange tak ;-)
Nu virker det...

Næsten - Hvis man prøver at gå ind på en af de hemmelige sider, så skal man vel føres over til formular.asp siden ??
Ikke ??

Hvis man prøver det nu - skriver browseren blot, at siden ikke findes !! - og det er jo ikke så smart...

Kan du hjælpe med, hvad det er jeg lige skal rette til / ændre ??

På forhånd tak for hjælpen...

/Peter
Avatar billede keysersoze Guru
21. oktober 2009 - 09:48 #10
Det er delen omkring

If Session("login1") <> "JA" Then
  Response.Redirect "formular.asp"
End If

der viderestiller hvis brugeren ikke er logget ind og den fejler som udgangspunkt ingenting. Hvis den fejler skyldes det at henvisningen til formular.asp er forkert.
Avatar billede peterpeter Seniormester
08. december 2009 - 09:23 #11
Tak for hjælpen Kim

Ligger du et svar ?

Tak

/Peter
Avatar billede keysersoze Guru
08. december 2009 - 18:09 #12
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