Avatar billede chrede Nybegynder
21. oktober 2003 - 22:09 Der er 30 kommentarer og
1 løsning

login system

Hej.
Jeg er asp newbie og har lige lavet et logon system efter samme princip som det der ses på denne side --> http://www.html.dk/tutorials/asp/lektion12.asp

Mit spørgsmål er hvordan får jeg lavet systemet dynamisk så siden vender tilbage til den side som "opdagede" at der ikke var logget på:

<html>
<title>Login tjeck</title>
<head>
</head>
<body>
<%
' Tjek om login og password er korrekte
If Request.Form("login") = "asp" AND Request.Form("password") = "asp" Then

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

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='login.htm'>Gå til login side</a></p>"

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

altså istedet for at den vender tilbage til den statisk side (her angivet som secretsite)?

Jeg ved ikke om jeg har formuleret mit spørgsmål forståeligt, hvis ikke så sig til... :-)
Avatar billede flashit Nybegynder
21. oktober 2003 - 22:15 #1
Du kan bruge respones.redirect("yourpage.asp")
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:18 #2
jeg skal bruge noget i retning af (pseduo-kode) --> respones.redirect("den-side-der-kaldte-logon.htm-filen")
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:19 #3
logon er den side der indeholder en formular hvor folk kan angive et login og et password
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:19 #4
logon.htm altså
Avatar billede flashit Nybegynder
21. oktober 2003 - 22:19 #5
Hvad betyder pseduo-kode
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:22 #6
forståelseskode... noget man bruger til at forklare sig med når man ikke kender syntaksen ...ligesom jeg lige har gjort den-side-der-kaldte-logon.htm-filen
Avatar billede netro Nybegynder
21. oktober 2003 - 22:25 #7
Efter du har sat din session til "JA", kan du viderestille således.

Response.Redirect Request.ServerVariables("HTTP_REFERER")
Avatar billede netro Nybegynder
21. oktober 2003 - 22:27 #8
Pseudokode = Skitsering af program logik
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:30 #9
det giver en fejl...

Response object error 'ASP 0156 : 80004005'

Header Error

/login.asp, line 15

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:32 #10
altså jeg har bare erstattet:
Response.Write "<p><a href='secretsite.asp'>Link til beskyttet fil</a></p>"

med:
Response.Redirect Request.ServerVariables("HTTP_REFERER")
Avatar billede netro Nybegynder
21. oktober 2003 - 22:41 #11
Prøv lige at se, om det faktisk er den side, du vil have viderestillet til ved at udskrive i stedet for at viderestille.

Response.Write Request.ServerVariables("HTTP_REFERER")
Avatar billede flashit Nybegynder
21. oktober 2003 - 22:43 #12
Her er lidt information. Måske det kan hjælpe :-)
Avatar billede flashit Nybegynder
21. oktober 2003 - 22:43 #13
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:45 #14
netro det er det faktisk ikke... HTTP_REFERER referere til logon.htm og (som rigtigt nok kaldte logon.asp) men det er jo faktisk den som kaldte logon.htm som jeg gerne vil stilles tilbage til ... altså faktisk 2 trin tilbage..
Avatar billede netro Nybegynder
21. oktober 2003 - 22:50 #15
Ok - på siden der sender brugeren videre til logon.asp, kan du så sætte en session, der indeholder URL'en til denne side (inden du viderestiller):

Session("URL") = Request.ServerVariables("Server_Name") & Request.ServerVariables("Script_Name")

- og på siden, hvor du sætter din session til "JA", kan du nu sende brugeren tilbage til denne URL:

Response.Redirect Session("URL")
Avatar billede chrede Nybegynder
21. oktober 2003 - 22:59 #16
hvad gør: Request.ServerVariables("Server_Name") & Request.ServerVariables("Script_Name")  ?
Avatar billede netro Nybegynder
21. oktober 2003 - 23:00 #17
Aflæser URL'en på den side, du placerer sætningen på.
Avatar billede chrede Nybegynder
21. oktober 2003 - 23:01 #18
ok, det tænkte jeg nok :-)
Avatar billede chrede Nybegynder
21. oktober 2003 - 23:06 #19
nu får jeg fat i det rette link som jeg skal redirecte til.. men når den skal gøre det melder den samme fejl som før
(Kommentar: chrede 21/10-2003 22:30:14)
Avatar billede netro Nybegynder
21. oktober 2003 - 23:15 #20
Indsæt <% Response.Buffer = True %> i toppen af siden.
Avatar billede chrede Nybegynder
21. oktober 2003 - 23:18 #21
ja det fandt jeg også ud af via google... :-) men nu er der opstået et andet problem... den side som den referere til via sessions URL, får en / foran sig...altså ser således ud /www.mitdomæne.dk/den-side-jeg-skal-tilbage-til.htm ...og det virker jo selvfølgelig ikke med /www
Avatar billede chrede Nybegynder
21. oktober 2003 - 23:19 #22
hvis jeg laver en Response.Write Request.ServerVariables("Server_Name") & Request.ServerVariables("Script_Name")  skriver den det rigtigt nok ud
Avatar billede netro Nybegynder
21. oktober 2003 - 23:22 #23
Prøv at give din session værdien således:

Session("URL") = "http://" & Request.ServerVariables("Server_Name") & Request.ServerVariables("Script_Name")
Avatar billede chrede Nybegynder
21. oktober 2003 - 23:34 #24
jeg bruger bare:
Session("URL") = Request.ServerVariables("Script_Name")

det ser ud til at virke, så er det bare relativt i forhold til domænet
Avatar billede netro Nybegynder
21. oktober 2003 - 23:37 #25
Ja, men det kræver, at de to filer ligger i den samme mappe. Hvis de gør det, kan du sagtens spare første del.

Så vil jeg tillade mig at lægge et svar.
Avatar billede chrede Nybegynder
21. oktober 2003 - 23:38 #26
bare iorden du...

jeg har prøvet at ligge noget i en undermappe ...det virker altså også.. :-)
Avatar billede netro Nybegynder
21. oktober 2003 - 23:40 #27
Så er det bare mig, der er ør i hovedet. Tak for points.
Avatar billede chrede Nybegynder
22. oktober 2003 - 00:00 #28
et hurtigt x-tra spg. kan jeg også beskytte mine billeder så der ikke kan linkes direkte til dem, f.eks på mappe niveau eller lign. ?
Avatar billede netro Nybegynder
22. oktober 2003 - 00:37 #29
Ja, ved at udskrive dem binært.
Avatar billede chrede Nybegynder
22. oktober 2003 - 07:48 #30
er det noget du kan udybe, eller kræver det et nyt spørgsmål? :-)
Avatar billede netro Nybegynder
22. oktober 2003 - 14:56 #31
Nej, jeg kan godt illustrere det kort for dig.

I dit img-tag kalder du en ASP-fil:

<img src="image.asp?id=354">

Og i denne ASP-fil har du følgende stykke kode stående, der henter et billede fra en mappe og udskriver det binært:

ID = Request.Querystring("id")
Response.ContentType = "image/jpeg"
Set Stream = Server.CreateObject("ADODB.Stream")
Stream.Type = 1
Stream.Open
Stream.LoadFromFile "c:\ftp\chrede\images\" & ID & ".jpg"
Contents = Stream.Read
Response.BinaryWrite Contents
Stream.Close
Set Stream = Nothing

Med andre ord har du fuldt kontrol over dine billeder, idet ingen nødvendigvis behøver kende dine billeders rigtige filnavne. Og hvis de i stedet linker til image.asp?id=? kan du i filen opstille en betingelse, der kun viser billedet, hvis brugeren kommer fra din side.
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