Avatar billede 0ffline Nybegynder
04. februar 2004 - 00:25 Der er 24 kommentarer og
2 løsninger

update db problem igen

Hej (igen) :O/

Jeg syntes dælme jeg har fulgt HTML.dk bogstav til punkt og prikke, men jeg kan ikke få dette til at virke.
Jeg skulle gerne havde det til at ændre 'userid' og sætte 'account_valid' til '1'

Nogen der kan se hvad der går galt?

<%

If Request.Form("Change") = "&AElig;ndre Password" Then

    strPWOOD = Trim(Replace(Request.Form("newpassw"),"'",""))

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/test.mdb")
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update test_members set "
strSQL = strSQL & "account_valid= '1', "
strSQL = strSQL & "userid= "'& Replace(Request.Form("newpassw")&"' "
strSQL = strSQL & " Where username ="'& Session("username")&"'"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
            Response.Redirect("intheclear.asp")
    End If

%>

............................................


RESPONSE.WRITE"<TD><form action='newpass.asp' method='POST' style='display:inline'>"
RESPONSE.WRITE"<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=400 HEIGHT=300>"
RESPONSE.WRITE"<TR>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=3 WIDTH=400 HEIGHT=40 class='capi' align='center'>Velkommen <B><font color='#990100'>" & Session("Username") &"</B></font></TD>"
RESPONSE.WRITE"</TR>"
RESPONSE.WRITE"<TR>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=2 WIDTH=209 HEIGHT=90 bgcolor='#ffffff' class='indryk'>Da det er f&oslash;rste gang du logger p&aring; xxxxx, skal du ændre dit password. Dette for at mindste muligheden for at andre logger ind i dit navn!</TD>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=1 WIDTH=191 HEIGHT=90><IMG SRC='newpassgfx/chair.jpg' WIDTH=191 HEIGHT=90 BORDER=0 ></TD>"
RESPONSE.WRITE"</TR>"
RESPONSE.WRITE"<TR>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=1 WIDTH=118 HEIGHT=25 bgcolor='#ffffff' class='indryk'>Dit gamle password:</TD>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=2 WIDTH=282 HEIGHT=25 background='newpassgfx/oldpassbg.jpg'><input type='text' value='"& rs("userid")&"' name='oldpassw' class='forms3' READONLY></TD>"
RESPONSE.WRITE"</TR>"
RESPONSE.WRITE"<TR>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=1 WIDTH=118 HEIGHT=10 bgcolor='#ffffff' class='none'>&nbsp;</TD>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=2 WIDTH=282 HEIGHT=10><IMG SRC='newpassgfx/logobgdivider.jpg' WIDTH=282 HEIGHT=10 BORDER=0 ></TD>"
RESPONSE.WRITE"</TR>"
RESPONSE.WRITE"<TR>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=1 WIDTH=118 HEIGHT=25 bgcolor='#ffffff' class='indryk'><font color='#990100'>Dit nye password:</font></TD>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=2 WIDTH=282 HEIGHT=25 background='newpassgfx/newpassbg.jpg'><input type='text' value='' name='newpassw' class='forms3'></TD>"
RESPONSE.WRITE"</TR>"
RESPONSE.WRITE"<TR>"
RESPONSE.WRITE"<TD ROWSPAN=1 COLSPAN=1 WIDTH=118 HEIGHT=58 class='indryk'><input type='submit' value='&AElig;ndre Password' class='blackbutton' name='Change'>

/0ffline
Avatar billede 0ffline Nybegynder
04. februar 2004 - 00:28 #1
Denne sætning skulle ikke være med :)
    strPWOOD = Trim(Replace(Request.Form("newpassw"),"'",""))
Avatar billede 0ffline Nybegynder
04. februar 2004 - 00:31 #2
Der er hvis ingen grund til at læse hele kildekoden igennem, da det må være det øverste der går galt, da den ikke redirecter og ikke opdaterer db's indhold
Avatar billede torstenhagemann Nybegynder
04. februar 2004 - 00:56 #3
Du har byttet om på en ' og en " i den sidste linie i din SQL-sætning, det rigtige er

strSQL = strSQL & " Where username = '" & Session("username") & "'"

/Torsten
Avatar billede keysersoze Guru
04. februar 2004 - 09:14 #4
hvis du prøver at komme med den fejlmeldingstekst der fremkommer når du forsøger at eksekvere scriptet kan vi lettere komme med forslag til hvad fejlen kan være :)
Avatar billede ldanielsen Nybegynder
04. februar 2004 - 10:30 #5
account_valid= '1'

skal det ikke være

account_valid = 1


Lad os se fejlmeldingen, og prøv også at
Response.write (strSQL)

lige før linien:
' SQL sætning eksekveres
Avatar billede 0ffline Nybegynder
04. februar 2004 - 16:58 #6
Der fremkommer INGEN fejlmeldinger, dette er en af grundene til at jeg har meget svært ved at knække denne nød
Avatar billede keysersoze Guru
04. februar 2004 - 17:06 #7
Hvis der ingen fejl kommer og der ingenting ændres i databasen så er det højst sandsynligt fordi din if-statement ikke bliver opfyldt, altså denne;

If Request.Form("Change") = "&AElig;ndre Password" Then

Prøv fx at ændre både value i form og i den id-statement til fx bare "change_password"... altså så du ungår mellemrum og andre underlige tegn. Hvis det er vigtigt der står lige præcis det i value så lav et hidden formfelt eller andet der kan give en 100% korrekt melding til asp-scriptet uden underlige tegn
Avatar billede 0ffline Nybegynder
04. februar 2004 - 17:10 #8
Se se, nu går det fremad. Nu kommer der da en fejlmelding
Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
Avatar billede keysersoze Guru
04. februar 2004 - 17:13 #9
prøv at skriv

response.write strSQL
response.end

lige før din linie med

Conn.Execute(strSQL)
Avatar billede 0ffline Nybegynder
04. februar 2004 - 17:15 #10
:o)
Smart... så må det være denne linie der er galt, da feltet er tomt
strSQL = strSQL & "userid= "'& Replace(Request.Form("newpassw")&"' "
Avatar billede 0ffline Nybegynder
04. februar 2004 - 17:30 #11
Update test_members set account_valid= 1, userid= Where username = 'offline'
Avatar billede 0ffline Nybegynder
04. februar 2004 - 18:05 #12
Nu er den lige ved at være der:
<%
If Request.Form("Change") = "Nyt Password" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/test.mdb")
Conn.Open DSN
strSQL = "Update test_members set "
strSQL = strSQL & "account_valid= 1, "
strSQL = strSQL & "userid= "& Request.Form("newpassw")
strSQL = strSQL & " Where username = '" & Session("Username") & "'"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
            Response.Redirect("intheclaer.asp")
    End If

%>

............................
Nu får jeg desværre bare fejlmeddelse ->
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/test/newpass.asp, line 11
Avatar billede 0ffline Nybegynder
04. februar 2004 - 18:41 #13
Det må jo være denne det halter med!
Conn.Execute(strSQL)
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:19 #14
Anyone?
Avatar billede keysersoze Guru
04. februar 2004 - 19:20 #15
Det eneste den linie gør er at give besked besked på at ens SQL skal udføres - så fejler den linier er det en henvisning til at en SQL er forkert.

hvis du prøver at lave

response.write strSQL
response.end

igen nu - hvad står der så på skærmen?
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:24 #16
Update test_members set account_valid= 1, userid= mitnyepassword Where username = 'offline'
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:27 #17
Så alle oplysningerne bliver nu vist, men den vil ikke køre Conn.Execute(strSQL)
Avatar billede keysersoze Guru
04. februar 2004 - 19:44 #18
hvilken felttype er "userid"?
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:48 #19
Datatypen i Access = tekst
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:51 #20
Kan problemet være kommaet, eller mangel på flere?
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:56 #21
Hurra, så virker det.
Keysersoze, smid et svar, for en person så ihærdig og tålmodig som dig har helt fortjent points her.
Hjælp til selvhjælp :O)
Avatar billede keysersoze Guru
04. februar 2004 - 19:56 #22
nærmere mangel på ' men det kan jeg se blev løst :)
Avatar billede 0ffline Nybegynder
04. februar 2004 - 19:57 #23
Du har helt ret, det var endnu engang totalt mangel på '
:O/
Vi deler...
Avatar billede keysersoze Guru
04. februar 2004 - 20:15 #24
heh - du er godt nok dårlig til at dele ;)

skal jeg oprette et spm med 75 p.?
Avatar billede 0ffline Nybegynder
04. februar 2004 - 20:35 #25
Fedt, så er det jo ikke bare ASP jeg skodder til.
Jeg syntes du har fortjent det hele, men jeg manglede lige 1 point i at have et pænt rundt pointstal c",)
Så tusinde tak for vedholdenheden.
Avatar billede keysersoze Guru
05. februar 2004 - 00:18 #26
helt i orden :)
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