Avatar billede plobber Nybegynder
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 &"
Avatar billede eagleeye Praktikant
22. maj 2003 - 19:48 #1
Der mangler et &:

strSQL = "Update admin set password ='" & Password &"' Where login ="& login &";"
Avatar billede terry Ekspert
22. maj 2003 - 20:04 #2
Password is more than likley a reserved word and login is more than likley too :o)
Avatar billede terry Ekspert
22. maj 2003 - 20:04 #3
.
Avatar billede plobber Nybegynder
22. maj 2003 - 20:12 #4
men hvordan skal jeg så gøre ???
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:13 #5
Så sæt [] omkring kolonnenanvet

strSQL = "Update admin set [password] ='" & Password &"' Where [login] ="& login &";"
Avatar billede plobber Nybegynder
22. maj 2003 - 20:16 #6
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
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:16 #7
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"),"'","''")
Avatar billede terry Ekspert
22. maj 2003 - 20:19 #8
22/05-2003 20:04:41 was an answer

"Update admin set password ='" & [Password] &"' Where login = '" & login & "'"
Avatar billede plobber Nybegynder
22. maj 2003 - 20:22 #9
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
Avatar billede terry Ekspert
22. maj 2003 - 20:24 #10
well it looks as though the SQL is OK now :o)
Avatar billede plobber Nybegynder
22. maj 2003 - 20:25 #11
k then what.. my database looks like this

Login    Password
admin    xxxxxxxxxxxx

any faults ???
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:33 #12
Fejlen skyldes du ikke har skriverettigheder til enten databasen eller den folder dtabasen ligger i.

Se mere her:
http://activedeveloper.dk/aspdigital/kapitel2/updateable_query.asp
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:36 #13
Har du XP?
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:36 #14
Måske vi skal starte med. Er det din egen server koden køre på?
Avatar billede plobber Nybegynder
22. maj 2003 - 20:40 #15
nej ikke egen server... www.brinkster.com.. der kommer ingen fejl nu, men koden bliver ikk opdateret... :/ den går bare til defaultlogged.asp
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:45 #16
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"
Avatar billede plobber Nybegynder
22. maj 2003 - 20:48 #17
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
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:50 #18
Du har stadig denne linje med?

Conn.Execute(strSQL)
Avatar billede plobber Nybegynder
22. maj 2003 - 20:53 #19
ja.
hvordan er man sikker på at databasen ikk er låst ???
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:57 #20
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.?
Avatar billede plobber Nybegynder
22. maj 2003 - 20:58 #21
ja har prøvet flere gange at logge ind og så prøve igen..
Avatar billede eagleeye Praktikant
22. maj 2003 - 20:59 #22
Prøv lige at vise din SQL igen.
Avatar billede plobber Nybegynder
22. maj 2003 - 21:01 #23
<!--#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
%>
Avatar billede terry Ekspert
22. maj 2003 - 21:02 #24
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 & "'"
Avatar billede plobber Nybegynder
22. maj 2003 - 21:04 #25
the table is named admin
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:04 #26
[] 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.
Avatar billede plobber Nybegynder
22. maj 2003 - 21:05 #27
hmm can i make the changepassword page otherwise ??? this is just the way i thought that it would best easiest but it isnt... :/
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:13 #28
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'"
Avatar billede plobber Nybegynder
22. maj 2003 - 21:15 #29
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 ???
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:19 #30
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")
Avatar billede plobber Nybegynder
22. maj 2003 - 21:21 #31
virkede ikk :/
'
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:27 #32
?
Avatar billede plobber Nybegynder
22. maj 2003 - 21:28 #33
den virker stadig ikk hvis jeg sætter den gamle linie ind og det med ID update:
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:37 #34
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?
Avatar billede plobber Nybegynder
22. maj 2003 - 21:39 #35
det er det ikk... og bare blank side
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:41 #36
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)
Avatar billede plobber Nybegynder
22. maj 2003 - 21:43 #37
hmmm jeg tror jeg har fundet fejlen tester lige noget...
Avatar billede plobber Nybegynder
22. maj 2003 - 21:54 #38
udfaldet af login er ID og ikk navnet :/
Avatar billede eagleeye Praktikant
22. maj 2003 - 21:56 #39
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
Avatar billede plobber Nybegynder
23. maj 2003 - 14:34 #40
Det virkede :) MANGE TAK
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