webForumDet fria alternativet

Ändra lösenord!

ASPur ASP

9 svar · 233 visningar · startad av DiDjo

Medlem sedan nov. 2002544 inlägg
Frågan#1

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å?

Medlem sedan mars 20021 889 inlägg
#2

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.

:)

Medlem sedan nov. 2002544 inlägg
#3

Om jag hämtar ut dem med hjälp av denna koppling:

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("********")
Set Rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3

Då kan man skriva rs("anv") för att få ut användarens användarnamn! Annars session("id")

Medlem sedan mars 20015 287 inlägg
#4

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.

Medlem sedan mars 20021 889 inlägg
#5
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.

:)

Medlem sedan nov. 2002544 inlägg
#6

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?

Medlem sedan aug. 20003 575 inlägg
#7

Det bästa är ju nästan att du gör som lunarstorm.

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

Medlem sedan mars 20021 889 inlägg
#8
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. ;)

Medlem sedan aug. 20003 575 inlägg
#9

Jag hade inget för mig så jag skrev lite :P.

Måste ju försöka komma ihåg hur gamla asp fungerar ibland :D

Medlem sedan nov. 2002544 inlägg
#10

oj vad många som svarat! Jag börjar med att prova din trexter! Skickar svar sen hur det funka!

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)