16. marts 2001 - 11:54Der er
13 kommentarer og 1 løsning
Skift password
jeg har følgende script der skal bruges til at skifte et password med. Ideen er, at man skal indtaste sit gamle password for derefter at indtaste det nye to gange. Brugernavnet er gemt via session objektet fra en tidligere side. Jeg får ingen fejl meddelse, men der sker ingen opdatering, elelr fejl hvis der er tastet noget forkert ind.
<% \' Hvis der er blevet trykket på knappen \"skift\" If Request.Form(\"Action\") = \"skift\" Then \' Her forberedes de indtastede værdier til validering strPWDGL = Trim(Replace(Request.Form(\"gammel\"),\"\'\",\"\")) strPWDNy1 = Trim(Replace(Request.Form(\"AdgangskodeNy1\"),\"\'\",\"\")) strPWDNy2 = Trim(Replace(Request.Form(\"AdgangskodeNy2\"),\"\'\",\"\"))
\' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(PWDGL) > 0 And Len(strPWDNy1) > 0 And Len(strPWDNy2) and strPWDNy1 = strPWDNy2 Then
\' DSNLess forbindelse til databasen Set myConn = Server.CreateObject(\"ADODB.Connection\") myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"bruger.mdb\")
\' Opbygning af SQL streng strSQL = \"SELECT Password FROM Users\"&_ \" WHERE (Username = \'\" &session(\"UserID\")& \"\')\"&_ \" AND (Password = \'\" & strPWDGL & \"\')\"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then \' Hvis alt er OK
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
If Request.Form(\"Action\") = \"skift\" Then \' Her forberedes de indtastede værdier til validering strPWDGL = Trim(Replace(Request.Form(\"gammel\"),\"\'\",\"\")) strPWDNy1 = Trim(Replace(Request.Form(\"AdgangskodeNy1\"),\"\'\",\"\")) strPWDNy2 = Trim(Replace(Request.Form(\"AdgangskodeNy2\"),\"\'\",\"\"))
IF strPWDNy1 = strPWDNy2 then strSQL = \"UPDATE Users SET PassWord = \'\" & strPWDNy1 & \"\' WHERE Username = \'\" & session(\"UserID\") & \"\' AND PassWord = \'\" & strPWDGL & \"\'\" Set rs = myConn.Execute( strSQL ) IF rs.EOF then strERR = \"Der er sket en fejl, prøv igen\" END IF END IF END IF %>
Sådan ser det ud nu: <% \' Hvis der er blevet trykket på knappen \"change\" If Request.Form(\"Action\") = \"change\" Then \' Her forberedes de indtastede værdier til validering strPWDGL = Trim(Replace(Request.Form(\"gammel\"),\"\'\",\"\")) strPWDNy1 = Trim(Replace(Request.Form(\"AdgangskodeNy1\"),\"\'\",\"\")) strPWDNy2 = Trim(Replace(Request.Form(\"AdgangskodeNy2\"),\"\'\",\"\"))
\' Hvis der er skrevet noget i både brugernavn og adgangskode if strPWDNy1 = strPWDNy2 then strSQL = \"UPDATE Users SET PassWord = \'\"& strPWDNy1 & \"\' WHERE Username = \'\" &session(\"UserID\") & \"\' AND Password = \'\" & strPWDGL & \"\'\"
\' DSNLess forbindelse til databasen Set myConn = Server.CreateObject(\"ADODB.Connection\") myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"bruger.mdb\")
\' Opbygning af SQL streng strSQL = \"SELECT Password FROM Users\"&_ \" WHERE (Username = \'\" &session(\"UserID\")& \"\')\"
Set rs = myConn.Execute(strSQL)
If (rs.BOF Or rs.EOF) Then strERR = \"Der er sket en fejl, prøv igen\" End If
\' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(strErr) > 0 Then \' Her laves fejlmeddelsen om til rød skrift strErr = \"<p><font color=red>\" & strErr & \"</font></p>\" End If End if End If %> <html><head> <title>Skift password script</title> </head><body> <form method=\"POST\" action=\"Change.asp\"> <p><font size=\"4\">Skriv dit gamle password og dit nye password</font></p><%=strErr%> <table border=\"0\"> <tr> <td width=\"50%\">Indtast gammelt password:</td> <td width=\"50%\"><input type=\"password\" name=\"Gammel\" size=\"20\"></td> </tr> <tr> <td width=\"50%\">Indtast ny adgangskode:</td> <td width=\"50%\"><input type=\"password\" name=\"AdgangskodeNy1\" size=\"20\"> </td> </tr> <tr> <td width=\"50%\">Gentag ny adgangskode:</td> <td width=\"50%\"><input type=\"password\" name=\"AdgangskodeNy2\" size=\"20\"> </td> </tr> </table> <p><input type=\"submit\" value=\"change\" name=\"Action\"></p> </form> </body></html>
Du udfører ikke strSQL = \"UPDATE Users SET PassWord = \'\"& strPWDNy1 & \"\' WHERE Username = \'\" &session(\"UserID\") & \"\' AND Password = \'\" & strPWDGL & \"\'\" Du laver bare strengen. Du skal lige proppe den igennem en myconn.execute, f.eks. ved at droppe linien strSQL = \"SELECT Password FROM Users\"&_ \" WHERE (Username = \'\" &session(\"UserID\")& \"\')\" En update returnerer ikke et recordset, så du kan ikke lave testen med rs.BOF og rs.EOF.
Nu skal jeg bare have skrevet fejlmeddelser og en redirect, men det skulle være til at klare
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.