02. juni 2002 - 12:47Der er
11 kommentarer og 1 løsning
Brugersystem igen igen...
Nu har jeg lavet alt det der...Nu er der bare login-formen Har lavet formen rigtigt oprettet bruger og logget ind.. Dette går fint nok. Men når jeg logger ind skriver den hele tiden "Forkert brugernavn / password prøv igen" selvom jeg skriver det rigtige... Koden har jeg skrevet således:
<% dim cn, strcn Set cn = Server.CreateObject("ADODB.Connection") strcn = "Provider = Microsoft.Jet.OLEDB.4.0;" strcn = strcn & "data source = /WINDOWS/Skrivebord/hp/brugere.mdb;" cn.ConnectionString = strcn cn.Open dim SQL SQL = "Select * FROM brugere WHERE [brugernavn] = '" & Request.Form("BrugerNavn") & "' AND [password] = '" & Request.Form("Password") & "'" Set rs = cn.Execute(SQL)
If [brugerlevel]=1 Then
Response.Redirect "almbruger.asp"
ElseIf [brugerlevel]=2 Then
Response.Redirect "admin.asp"
Else
Response.Write "Forkert brugernavn / password." %> <BR> <A HREF = "default.asp">Prøv igen</A> <% End If %> Hvad er der gået galt?
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
medions> Formelt er det fuldstændig ligegyldigt hvad du kalder dine variable (blot det ikke er beskyttede ord). At koden så er meget nemmere at læse med et letforståeligt prefix er en anden ting. ;-)
Her har du et eksempel på et godt udviklet loginsystem med kommentar...
' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("password"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=/WINDOWS/Skrivebord/hp/brugere.mdb;" ' Opbygning af SQL streng strSQL = "SELECT * FROM Users"&_ " WHERE (brugernavn = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") intTRAN = rs("Transfer")
Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
tjacob> Du kan da ikke sige andet end det er dejlig at ha' en kode hvor det hele er sat perfekt op! Det er definere variablerne er, ja, selvfølgelig kun for ordenhedens skyld, men alle kan sige hvad de vil, det er sq dejligst med en perfekt kode! :-)
sql = "UPDATE brugere SET brugerlevel='"Request.Form("level")"' WHERE brugernavn = "Request.Form("bruger")"" Hvad er der galt? Den skriver slut på sætning var ventet...
teknikeren >> Du behøves ikke at tildele 200 points til hvert spørgsmål. Så svære er de heller ikke ;-)
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.