22. maj 2003 - 18:42
Der er
39 kommentarer og 1 løsning
Ændring af password ved hjælp af side på nettet
Hej. Jeg har lavet en database med brugernavn og password. Nu vil jeg gerne have en side så folk selv kan ændre deres password fra en side. jeg har forsøgt at lave noget, men det virker ikk. Changepass.asp: <form method="post" action="change.asp"> <table border="0" cellspacing="0" width="228" height="125"> <tr> <td width="78" height="25"><p>Password:</td> <td width="165" height="25"><input type="password" name="Password"></td> </tr> <input type="hidden" Name="Mode" Value="change"></td> <tr> <td width="78" height="25"><input type="submit" value="Change"></td> </td> </table> </form> change.asp: <!--#include file="beskyt.asp"--> <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("database.mdb") Conn.Open DSN Password = Request.Form("Password") Login = Session("ID") strSQL = "Update admin set password ='" Password &"' Where login ="& login &";" Conn.Execute(strSQL) Conn.Close Set Conn = Nothing Response.redirect "defaultlogged.asp" %> fejlen : Microsoft VBScript compilation error '800a0401' Expected end of statement /tmkguild/change.asp, line 10 strSQL = "Update admin set password ='" Password &"' Where login ="& login &";" ----------------------------------------^ Pilen stopper ved P'et i '" Password &"
Annonceindlæg fra Pax8
Der mangler et &: strSQL = "Update admin set password ='" & Password &"' Where login ="& login &";"
Password is more than likley a reserved word and login is more than likley too :o)
men hvordan skal jeg så gøre ???
Så sæt [] omkring kolonnenanvet strSQL = "Update admin set [password] ='" & Password &"' Where [login] ="& login &";"
Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /tmkguild/change.asp, line 11
Når du ligger en streng direkter ind i SQL så er det en god ide at replace ' med to '' eller fjerne ' når det er et password: Password = Replace(Request.Form("Password"),"'","''")
22/05-2003 20:04:41 was an answer "Update admin set password ='" & [Password] &"' Where login = '" & login & "'"
på det terry skriver kommer: Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query. /tmkguild/change.asp, line 11
well it looks as though the SQL is OK now :o)
k then what.. my database looks like this Login Password admin xxxxxxxxxxxx any faults ???
Måske vi skal starte med. Er det din egen server koden køre på?
nej ikke egen server...
www.brinkster.com.. der kommer ingen fejl nu, men koden bliver ikk opdateret... :/ den går bare til defaultlogged.asp
Der skal være skrive rettighed i den folder på serveren hvor database filen ligger. Typsik på et web-hotel har man en speciel folder hvor databasen ligger. Som det er nu ligger database filen i samme folder som asp filen. Så du skal være sikker på du kan bruge den folder til at ligge database filen i. Prøv evt at udekommentere denne linje, så den ikke redirecter. 'Response.redirect "defaultlogged.asp"
jeg har ændret så databasen ligger i DB default mappen på brinkster... Dumme mig, men den opdaterer ikk databasen når jeg trykker på change
Du har stadig denne linje med? Conn.Execute(strSQL)
ja. hvordan er man sikker på at databasen ikk er låst ???
Hvis den ikke kommer med fejl så skulle det gå godt. Og du sikker på at din session ikke er timet ud så Session("ID") er tom.?
ja har prøvet flere gange at logge ind og så prøve igen..
Prøv lige at vise din SQL igen.
<!--#include file="beskyt.asp"--> <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/database.mdb") Conn.Open DSN Password = Replace(Request.Form("Password"),"'","''") Login = Session("ID") strSQL = "Update admin set password ='" & [Password] &"' Where login = '" & login & "'" Conn.Execute(strSQL) Conn.Close Set Conn = Nothing %>
If your table fields are named Login and Password then what is the name of the table? The syntax for an update is Update THETABLE SET THEFIELD ='" & SomeTextValue &"' Where AField = '" & SomeTextValue & "'"
[] kan fjernes da de ikke skal være omkring variablen men omkring kolonnenavnet sådan her: strSQL = "Update [admin] set [password] ='" & Password &"' Where login = '" & login & "'" Og din tabel hedder admin ? måske det også er reserveret så sæt [] omkring som vist.
hmm can i make the changepassword page otherwise ??? this is just the way i thought that it would best easiest but it isnt... :/
Jeg tror din session er udløbet og dermed er din login = "" så opdater den nemlig ikke noget. Prøv at "hardcode" SQL så du ved 100% hvad der står: strSQL = "Update [admin] set [password] ='nytpassword' Where login = 'admin'"
hmmm den var udløbet, men når beskyt.asp tjekker om den er udløbet så er den det ikk :/ hvor gør jeg så den ikk udløber ???
Den skulle først udløbe hvis man ikke har brugt siden i 10 min eller man forlader siden. Eller kan du prøve at indsætte denne linje for at session variablen bliver fornyet: Session("ID") = Session("ID")
den virker stadig ikk hvis jeg sætter den gamle linie ind og det med ID update:
Virker stadig ikk? kommer det en fejl kode eller bare blank side? Har du prøvet at downloade databasen og tjekke det ikke er blevet opdateret?
det er det ikk... og bare blank side
Prøv at udskrive SQL og vis hvad du får: strSQL = "Update admin set [password] ='" & Password &"' Where login = '" & login & "'" Response.write strSQL Conn.Execute(strSQL)
hmmm jeg tror jeg har fundet fejlen tester lige noget...
udfaldet af login er ID og ikk navnet :/
Så login som Session("id") indeholder autonummeret ? og den kolonne hedder ID så prøv med denne SQL: strSQL = "Update admin set [password] ='" & Password &"' Where ID = " & login
Kurser inden for grundlæggende programmering