Hej! Jag har tre st former! En för gammalt lösenord och 2 för nya, en av dom nya är en confirm ruta! När man trycker på Uppdatera skickas man till losen.asp! och där undrar jag hur man kollar satt formen med det gamla lösenordet stämmer! Om det gör de så fortsätter den till nästa och kolla om de nya lösenorden är lika! Är dom det uppdatateras databasen! Hur gör man så?
Det måste finnas någon session eller liknande som du kan identifiera de olika medlemarna med. Finns det en sådan och vad heter sessionen? I så fall hämtar du det gamla lösenordet ur databsen med hjälp av sessionen, kollar om det gamla är lika med det användaren skrivit in och går sedan vidare till nästa steg om det stämde överens.
Om man redan är inloggad kan du ju göra så, annars kanske du ska ha en fjärde ruta där du även skriver ditt användarnamn.
Att det nya lösenordet är lika kan du iofs kolla med javascript innan du postar sidan.
GetPass = "SELECT losenord FROM anv where id="&session("id")
...
If RecSet("losenord") = Request.Form("losen1") Then
If Request.Form("losen2") = Request.Form("losen3") Then
Sql = "mata in nytt lösen"
End If
End If
kanske? Ändra namnen jag hittat på till vad de egentligen heter.
Solbulle: man ska vara inloggad när man gör det!
hmmmm! Ursäkta men jag hajjar inte riktigt den där koden jag fick av dig trexter! Tabelen heter anv och los heter den med lösenordet! Är det bara att ändra till rätta och lägga in den under min kod som jag skickade sen lägga till
Session("andrats") = "Ditt lösenord har ändrats!"
response.redirect "andra_losen.asp"
under?
Att medlemen måste skriva sitt nuvarande lösenord innan den byter.
Dim strOldpwd, strNewpwd, strNewpwd2, strSession, strSql, Conn, Rs
// Conn = Din databaskoppling.
Function FixChars(strFix)
FixChars = Replace(strFix,"'","''")
End Funcrion
strOldpwd = FixChars(Request.Form("Oldpwd"))
strNewpwd = FixChars(Request.Form("Newpwd"))
strNewpwd2 = FixChars(Request.Form("Newpwd2"))
strSession = Session("User-Id")
strSql = "Select User-Id From Members where Mem_pwd = '"&strOldpwd&"' and Mem_Id = '"&strSession&"'";
Set Rs = Conn.Execute(strSql)
If Rs.Eof Then
Response.Write("Du måste ange ditt gamla lösenord för att kunna byta.")
Else
Rs.Close()
If strNewpwd = strNewpwd2 and Len(strNewpwd) <> 0 Then
strSql = "Update Mem set mem_pwd = '"&strNewpwd&"' where mem_id='"&strSession&"'
Conn.Execute(strSql)
Response.Write("Lösenordet är nu ändrat till: <b>"&strNewpwd&"</b>")
Else
Response.Write("Lösenorden matchar inte varandra. Eller så är något fält tomt.")
End If
End If
Conn.Close()
OBS! Ej testat koden kan innehålla några småfel.
Du kan självklart lägga in Response.Redirect() istället för att använda response.write men istället för att använda sessions för att lägga in texten använd hellre QueryString's
GetPass = "SELECT los FROM anv where id="&session("id")
...'Här kör du SQL-frågan som du brukar och lägger in resultatet i ett RecordSet. Som du brukar alltså.
If RecSet("losenord") = Request.Form("losen1") Then
If Request.Form("losen2") = Request.Form("losen3") Then
Sql = "UPDATE anv SET los = '"&Request.Form("losen2")&"' Where id="&session("id")
Session("andrats") = "Ditt lösenord har ändrats!"
response.redirect "andra_losen.asp"
End If
End If
Session("andrats") = "Ditt lösenord har inte ändrats."
response.redirect "andra_losen.asp"
kanske?
:)
r: Nickemannens kod är nog mer komplett, använd den om den fungerar. ;)