18. december 2003 - 00:58Der er
16 kommentarer og 1 løsning
Login koder
Hej jeg er total ny herinden ;-) og er også ny til asp.
Jeg har lavet en database i access, med bruger & klaner. Men nu skal jeg kunne logge ind på den side jeg har lavet. Jeg har 2 boxes, et med brugernavn & et med Password også en trykknap der hedder send samt et afkrudsningfelt med Gem. hver box skal vel have et referat at henvende sig til ? samt et security der tjekker om de er oprettet? Nogen der kan hjælpe med det ? min database har jeg kaldt kb
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Du mener for at sende oplysningerne? Der skal du bruge en submit knap. En normal form ser sådan ud: <form name="login" action="login.asp" method="post"> Username: <input type="text" name="username" value=""> <br> Password: <input type="password" name="password" value=""> <br> <input type="submit" name="submit" value="Submit"> </form>
Når man klikker på submit-knappen, sendes indholdet af felter med til siden login.asp. method=post indikerer at dataene sendes via form elementerne, og ikke via urlen. På server siden aflæser man indholdet af felterne "username" og "password" hed request.form("username") og request.form("password").
Arha ja.. Det ser rigtigt ud ;-) Så skal jeg bare have lavet en session kaldet login.asp som der skal referes til index.asp Det må man kunne læse sig til hæhæ Tak for hjælpen
Og når du arbejder med en database, er det vigtigt at erstatte ' (apostrof) med '' (2 gange apostrof). I lektion 20 ("Indsæt data i databasen") skriver de:
<citat> SQL sætninger med ' tegnet
Hvis du giver brugeren mulighed for at indtaste noget tekst i en formular, og denne tekst indeholder tegnet ' (quot) vil den pågældende record ikke kunne indsættes i databasen. Løsningen er at erstatte et enkelt quote (') med dobbelt quote ('').
Dette kan gøres med funktionen Replace på følgende måde:
Alle ' tegn i teksten erstattes af dobbelt ' tegn, dette vil blive tolket som en enkelt ' af databasen.
</citat>
Det er mere for en sikkerhedsskyld at man erstatter ' med ''. Ellers ville man kunne skaffe sig adgang til en gyldig session, ved at indtaste følgende som brugernavn:
<html> <head> <title>tid og dato</title> </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='index.asp'></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='index.asp'></a></p>"
End If %> </body> </html>
men mangler der ikke noget database et eller andet ?
' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/database.mdb") Conn.Open DSN
' SQL forespørgsel strSQL = "Select * from TABELNAVN where brugernavn ='" & strUsername & "' AND kodeord = '" & strKodeord & "'"
' Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL)
if (not rs.bof) and (nor rs.eof) then ' brugernavn og password er fundet, sæt session til JA Session("login") = "JA" Session.Timeout = 30 Response.Write "<h1>Du er nu logget korrekt ind</h1>" Response.Write "<p><a href='index.asp'></a></p>"
else
session("login") = "nej" session.abandon response.write "Forkert brugernavn eller kodeord"
Hvis du ikke allerede har fundet ud af det, så skal der være et ekstra "end if" lige før "%>".
- "/cgi-bin/database.mdb" skal rettes, så den peger på din database.. - TABELNAVN skal rettes til navnet på din tabel i din database.. - Linien where brugernavn ='" & strUsername & "' AND kodeord = '" &: -- ret "brugernavn" til navnet på feltet til brugernavn -- ret "kodeord" til navnet på feltet til kodeord
huh? Det skal stå som jeg har skrevet det :) I mit eksempel, hedder felterne i databasen "brugernavn" og "kodeord", og de er i en tabel der hedder "TABELNAVN".
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.