04. maj 2000 - 09:25Der er
12 kommentarer og 1 løsning
login...
Hej...
Er der nogen af jer der ligger inde med et script som kan
1: hvis brugeren findes i databasen og koden ikke passer logger den ikke ind
2: hvis brugeren ikke findes logger den ind som uregget bruger..
3: Hvis koden og brugernavn passer med databasen logger den ind som regget bruger....
Altså kort sagt... der skal kode til regget navne, men folk der ikke er regget skal også kunne logge ind, så længe det ønskede navn ikke er regget, og skal bruge kode....
Jeg har lavet nogetlunde det samme og jeg benyttede mig af et rigtig godt eksempel, som du kan finde på 15 seconds under www.15seconds.com/issue/pv000217.htm
det skulle ikke være noget problem at lave det om til noget du kan bruger
sql = "select * from users where brugernavn='" & username & "'" res.open sql, con, 1, 1
if res.eof then ' Brugeren findes ikke i databasen elseif res("kodeord") = password then ' Brugeren har skrevet korrekt brugernavn og password else ' Brugren har skrevet forkert password end if
Kan det udbygges så: - Brugernavnet bliver udskrevet på alle sider ? (Session("Brugernavn")????) - Når man signer op for et brugernavn at den så tjekker med databasen at det ikke eksistere i forvejen ?
Hey, er det ikke på activeserverpages der ligger et grydeklart script (et sæt af scripts) med det hele? Dog ikke check af dobbeltregistrering - eller registrering i det hele taget, men det er da det mindste? Det script (jeg bruger det selv) bruger session-variable til at opbevare navnet - hvorfra det er nemt at skrive dem ud på siden.
If Request("Create.x") <> "" Then if Len(Request("password")) >= 8 Then If InStr(1,request("email"), ".", 1) >= 4 Then If InStr(1, request("email"), "@", 1) >= 2 Then if Len(Request("email")) >= 5 Then If Request("Password") = Request("Password2") Then
' Generate random salt (10 characters) Randomize Salt = "" For i = 1 to 10 '65 is ASCII for "A" Salt = Salt & chr(int(Rnd * 26) + 65) Next
' Calculate Hash of (Password & Salt) Set CM = Server.CreateObject("Persits.CryptoManager") Set Context = CM.OpenContext("mycontainer", True) Set Hash = Context.CreateHash Hash.AddText Request("Password") & Salt HashValue = Hash.Value.Hex Set Hash = Nothing Set CM = Nothing
' Save username, hashed value and salt in the database set rs = Server.CreateObject("adodb.recordset") rs.open "passlog_User", "DSN=Artist_db;UID=;PWD=;", 2, 3 rs.AddNew rs("User").Value = Request("Username") rs("password_hash").Value = HashValue rs("salt").Value = Salt rs.Update Set rs = Nothing if Err then Response.write("<CENTER> User Already Exists</CENTER>") else
Response.Clear Response.Redirect "okadd.asp" end if Else Response.Write ("<CENTER>Password was not correctly confirmed.</CENTER>") End If
Else Response.Write ("<CENTER>Not an Email</CENTER> ")
End If Else Response.Write ("<CENTER>Not an Email </CENTER>")
End If Else Response.Write ("<CENTER>Not an Email </CENTER>")
End If Else Response.Write ("<CENTER>Password must be at least 8 characters.</CENTER>")
Morph ovetog vist det spørgsmål, så ham må give points hvis han vil...
-Anders
Synes godt om
Ny brugerNybegynder
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.