Avatar billede dingkee Nybegynder
19. maj 2001 - 11:38 Der er 15 kommentarer og
1 løsning

Ændre password

Jeg skal have lavet en slags form så man kan ændre sit password i et brugersystem.

Først skal man indtaste det nuværende password, det skal man så have sammenlignet med det der ligger i databasen, og hvis det er det samme, skal man kunne indtaste et nyt password.
Gerne sådan at man indtaster det samme password i to textbokse, og så den sammenligner de to passwords, hvis de så er ens, bliver passwordet gemt i databasen.

Er der nogen der ved hvordan man laver det????
Avatar billede crunch Nybegynder
19. maj 2001 - 12:06 #1
ja det har jeg liggende - øjeblik.
Avatar billede crunch Nybegynder
19. maj 2001 - 12:15 #2
<html>
<body>

<%
strDSN = din dns streng


a =         Request.Form(\"Brugernavn\")
b =         Request.Form(\"Password\")
c =         Request.Form(\"NytPassword\")



SQL1 = \"Select pass FROM Oprettet WHERE pass = (\'\"&b&\"\') and Brugernavn = (\'\"&a&\"\')\"
set records1 = conn.execute(SQL1)

If records1.bof and records1.eof then
    records1.close
    Response.redirect \"forkertpassword.asp\"
End If
     
SQL2 = \"INSERT INTO Oprettet (nytpass) VALUES (\'\"c&\"\') WHERE brugernavn = (\'\"&a&\"\')\"
conn.execute(SQL2)

response.write \"Dit brugernavn er:\" & Request.Form(\"Brugernavn\")
response.write \"Dit nye password er:\" & Request.Form(\"NytPassword\")%>
</body>
</html>
Avatar billede dingkee Nybegynder
19. maj 2001 - 13:06 #3
Det virker ikke helt.
Dette er det jeg har indtastet i koden:
      password = Request.form(\"password\")
      nytpass = Request.form(\"nytpass\")

SQL1 = \"Select password FROM mailingliste WHERE password = (\'\"&password&\"\') and id = \"& Session(\"login\")
set records1 = conn.execute(SQL1)

If records1.bof and records1.eof then
    records1.close
    Response.redirect \"forkertpassword.asp\"
End If
     
SQL2 = \"INSERT INTO mailingliste (password) VALUES (\'\"&nytpass&\"\') WHERE id = \"& Session(\"login\")
conn.execute(SQL2)

Dette er den fejl jeg får:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.

Kan du se hvad der er galt??
Avatar billede crunch Nybegynder
19. maj 2001 - 13:10 #4
du har flere fejl i din SQL. Har du husket at definere din session(\"login\") - og er det tal eller tekst ? - prøv noget i stilen med:

    password = Request.form(\"password\")
      nytpass = Request.form(\"nytpass\")

SQL1 = \"Select password FROM mailingliste WHERE password = (\'\"&password&\"\') and id =(\"& Session(\"login\")&\")\"
set records1 = conn.execute(SQL1)

If records1.bof and records1.eof then
    records1.close
    Response.redirect \"forkertpassword.asp\"
End If
     
SQL2 = \"INSERT INTO mailingliste (password) VALUES (\'\"&nytpass&\"\') WHERE id =(\"& Session(\"login\")&\")\"
conn.execute(SQL2)
Avatar billede dingkee Nybegynder
19. maj 2001 - 13:16 #5
Jeg får stadig den samme fejl
Avatar billede crunch Nybegynder
19. maj 2001 - 13:20 #6
hviken linie kommer fejlen i. -
jeg kan ikke hjælpe hvis jeg ikke ved om dine værdier password, mailingliste og id er tekst eller tal - og jeg skal også vide hvornår og til hvad du sætter din session(\"login\")
Avatar billede dingkee Nybegynder
19. maj 2001 - 13:27 #7
session(\"login\") - er det samme som id (tal), altså så man kan kende forskel på brugerne
Password er tekst
Mailingliste er min tabel

Fejlen kommer i denne linie
conn.execute(SQL2)
Avatar billede crunch Nybegynder
19. maj 2001 - 13:31 #8
prøv med:

SQL2 = \"INSERT INTO mailingliste (password) VALUES (\'\"&nytpass&\"\') WHERE id = \"&Session(\"login\")&\"\"
conn.execute(SQL2)
Avatar billede dingkee Nybegynder
19. maj 2001 - 13:38 #9
Det virker altså desværre stadig ikke
Avatar billede crunch Nybegynder
19. maj 2001 - 13:40 #10
samme fejl ?
Avatar billede dingkee Nybegynder
19. maj 2001 - 13:42 #11
jeps
Avatar billede crunch Nybegynder
19. maj 2001 - 13:47 #12
prøv at dobbeltjekke at navnene er identiske med din db og indsæt dette istedet for:


if nytpass = \"\" then
response.write \"der mangler indhold\"
else
SQL2 = \"INSERT INTO mailingliste (password) VALUES (\'\"&nytpass&\"\') WHERE id = \"&Session(\"login\")&\"\"
conn.execute(SQL2)
end if


Avatar billede dingkee Nybegynder
19. maj 2001 - 13:56 #13
Der er jo kun et navn at tjekke i databasen, det er jo Password, hvor nytpass skal sættes ind i.

Jeg får stadig den samme fejl
Avatar billede crunch Nybegynder
19. maj 2001 - 14:05 #14
kan du evt. ligge en URL ud - og ligge hele koden op præcis som den ser ud. Så er det nemmere at se.
Avatar billede dingkee Nybegynder
19. maj 2001 - 14:13 #15
Jeg har selv lavet det på en anden måde, her er den:

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
strSQL = \"SELECT * FROM mailingliste WHERE id = \"& Session(\"login\")
rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
if rs(\"password\") = Request.form(\"password\") then
      rs(\"password\") = Request.form(\"nytpass\")
      rs.Update
      rs.close
  Response.redirect \"default.asp?show=godkendt\"
else%>
<font face=\"Tahoma\" size=\"2\" color=\"000000\">Dit gamle password er ikke rigtigt.<br><a href=\"default.asp?show=retpass\">Prøv igen</a></font<%
end if

Og den virker
Avatar billede crunch Nybegynder
19. maj 2001 - 14:16 #16
nå men så er alt jo fint. (:
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