Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 62

Discussione: Cambio password utenti

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260

    Cambio password utenti

    ciao a tutti ho un problema con un form per il cambio password degli utenti loggati...
    ieri avevo creato un altro post ma non è andato a buon fine...oggi ho riscritto tutta la pagina ma ancora non funziona...
    qualcuno può aiutarmi?!?!?!?

    <%
    Dim username
    Dim Oldpassword
    Dim Newpassword1
    Dim Newpassword2

    username = Session(Session("username"))
    Oldpassword = Replace(Request.Form("Oldpassword"), "'", "''")
    Newpassword1 = Replace(Request.Form("Newpassword1"), "'", "''")
    Newpassword2 = Replace(Request.Form("Newpassword2"), "'", "''")


    Dim Conn
    Dim Rs
    Dim SQL

    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/reg_utenti.mdb")
    Set rs=Server.CreateObject("ADODB.recordset")
    SQL = "SELECT * FROM utenti WHERE username = '"&Session("username")&"' AND password ='"&Oldpassword&"'"
    rs.Open SQL, Conn

    WHILE not rs.EOF
    rs.MoveNext
    WEND
    Set rs=nothing

    Set rs=Server.CreateObject("ADODB.recordset")
    SQL = "UPDATE utenti SET password = "&Request.Form("Newpassword2")&" WHERE username = "&Session("username")&""
    Response.Write SQL
    If username = " & username & " AND Request.Form("Oldpassword") = rs("password") AND Request.Form("Newpassword1") = Request.Form("Newpassword2") then
    rs.Open SQL, Conn
    Response.write "Dati Aggiornati"
    Set rs=nothing
    Conn.close
    Set Conn=nothing
    ELSE
    Response.Redirect ("http://www.miosito.it/incorrect.asp")
    Set rs=nothing
    Conn.close
    Set Conn=nothing
    END IF

    %>

    grazie mille

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Bellissimo questo:

    codice:
    WHILE not rs.EOF
    rs.MoveNext 
    WEND
    A che serve?

    Magari l'update mettilo lì dentro no?

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    ti è piaciuto?!?!?!?

    ora provo

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    non per altro non sto postando nella sezione asp avanzata!!!

    comunque...puo essere qualcosa del genere??

    <%
    Dim username
    Dim Oldpassword
    Dim Newpassword1
    Dim Newpassword2

    username = Session(Session("username"))
    Oldpassword = Replace(Request.Form("Oldpassword"), "'", "''")
    Newpassword1 = Replace(Request.Form("Newpassword1"), "'", "''")
    Newpassword2 = Replace(Request.Form("Newpassword2"), "'", "''")


    Dim Conn
    Dim Rs
    Dim SQL

    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/reg_utenti.mdb")
    Set rs=Server.CreateObject("ADODB.recordset")
    SQL = "SELECT * FROM utenti WHERE username = '"&Session("username")&"' AND password ='"&Oldpassword&"'"
    rs.Open SQL, Conn

    WHILE not rs.EOF

    If username = " & username & " AND Request.Form("Oldpassword") = rs("password") AND Request.Form("Newpassword1") = Request.Form("Newpassword2") then
    Set rs=Server.CreateObject("ADODB.recordset")
    SQL = "UPDATE utenti SET password = "&Request.Form("Newpassword2")&" WHERE username = "&Session("username")&""
    Response.Write SQL
    rs.Open SQL, Conn
    Response.write "Dati Aggiornati"
    Set rs=nothing
    Conn.close
    Set Conn=nothing
    ELSE
    Response.Redirect ("http://www.miosito.it/incorrect.asp")
    End If
    rs.MoveNext
    Wend
    Set rs=nothing
    Conn.close
    Set Conn=nothing
    %>

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    ragazzi non ne vengo fuori..qualcuno mi aiuti perfavore

  6. #6
    Originariamente inviato da mic3000
    non per altro non sto postando nella sezione asp avanzata!!!

    comunque...puo essere qualcosa del genere??

    <%
    Dim username
    Dim Oldpassword
    Dim Newpassword1
    Dim Newpassword2

    username = Session(Session("username"))
    Oldpassword = Replace(Request.Form("Oldpassword"), "'", "''")
    Newpassword1 = Replace(Request.Form("Newpassword1"), "'", "''")
    Newpassword2 = Replace(Request.Form("Newpassword2"), "'", "''")


    Dim Conn
    Dim Rs
    Dim SQL

    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/reg_utenti.mdb")
    Set rs=Server.CreateObject("ADODB.recordset")
    SQL = "SELECT * FROM utenti WHERE username = '"&Session("username")&"' AND password ='"&Oldpassword&"'"
    rs.Open SQL, Conn

    WHILE not rs.EOF

    If username = " & username & " AND Request.Form("Oldpassword") = rs("password") AND Request.Form("Newpassword1") = Request.Form("Newpassword2") then
    Set rs=Server.CreateObject("ADODB.recordset")
    SQL = "UPDATE utenti SET password = "&Request.Form("Newpassword2")&" WHERE username = "&Session("username")&""
    Response.Write SQL
    rs.Open SQL, Conn
    Response.write "Dati Aggiornati"
    Set rs=nothing
    Conn.close
    Set Conn=nothing
    ELSE
    Response.Redirect ("http://www.miosito.it/incorrect.asp")
    End If
    rs.MoveNext
    Wend
    Set rs=nothing
    Conn.close
    Set Conn=nothing
    %>
    Provo a tradurre il tuo codice:
    1.ho in sessione l'user name (immaginio sia chiave primaria);
    2.prendo la oldPass, la newPass1 e la newPass2 dal form;
    3.sul database vado a prendere l'utente che ha quell'userName e la oldPass;
    4.controllo che il nome corrisponde a quello appena preso dalla query, idem per la oldPass everifico che la la newPass1 e la newPass2 siano uguali;
    5.se passo il test updato newPass sul'utente di session;
    6. se tutto ok redirecto tutto alla nuova pagina

    Il procedimento dovresti ottimizzarlo un poco:
    1. la tabella utenti dovrebbe avere un indice, se questo indice e' username allora NP, anche se sarebbe meglio dare un indice del genere IDUtente;
    2. Il controllo se la newPass1 e newPass2 sono uguali fallo con javascript lato client e non serve chiamare il server per questo controllo.
    3. se la tabella e' indicizzata correttamente (vedi punto 1), questa query puo servirti solo per controllare che la oldPass della form è = a quella del database. Quindi la query dovrebbe essere:' prendi utente dove username = a indice' (vedi punto 1).
    4. questo punto e' stato risolto in parte dal punto 2 (newPass1 = newPass2), e dal punto 3(oldPassForm = oldPassDB);
    5. a questo punto updato la newPass sulla indice della tabellla utenti su cui sto lavorando.
    6 se tutto ok, vado alla nuova pagina

    NB:questa parte di codice mi sembra ridondante
    username = Session(Session("username"))
    credo che
    username = Session("username")
    sia sufficente

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    si il procedimento che intendevo era proprio quello...
    il mio database ha una chiave primaria che è proprio ID...
    comunque al momento con questo codice ricevo questo errore

    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal

    alla linea 31 che sarebbe questa

    codice:
    If username = " & username & " AND Request.Form("Oldpassword") = rs("password") AND Request.Form("Newpassword1") = Request.Form("Newpassword2") then

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    ragazzi qualcuno sa dirmi dove sbaglio??
    grazie!

  9. #9
    mic, io ti ho risposto nell'altro thread: va cambiata la logica! e la tua esigenza si risolve con UNA query di update.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    optime non so se hai riletto il codice ma è un po diverso da quell'altro...
    l'ho riscritto...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.