Buona giornata a tutti.
Nella pagina ho un modulo per recuperare la password e uno per effettuare la login.
Al modulo per recuperare la password è associato un "RequiredFieldValidator".
I campi della login non hanno nessun controllo iniziale verifica solo le credenziali nel DB.
Il problema sta nel fato che se io provo a lanciare la login mi intercetta il controllo che ho nel modulo per il recupero passoword e non mi fa andre avanti.
Vi posto il codice per il recupero password:
Questo è il codice della login con rispettivo modulo:codice:<SCRIPT LANGUAGE="C#" RUNAT="server"> public void sendPassword (Object Obj, EventArgs E) { //Inizio script per recupero password // Apro la connessione String str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("database/dzxcxzcxzcxz.mdb"); OleDbConnection cn = new OleDbConnection(str); cn.Open(); string email = this.email.Text.Replace("'" , "''"); String sqlVerifica = "SELECT chiaveAccesso FROM iscritti WHERE email = '" + email + "'"; // Creiamo l'oggetto cmd di tipo OleDbCommand // passando la Sql e la connessione al costruttore dell'oggetto OleDbCommand cmdVerifica = new OleDbCommand(sqlVerifica, cn); // Creiamo un oggetto di tipo OleDbDataReader // Esso è assimilabile a un RecordSet con cursore di tipo forward-only in ASP tradizionale OleDbDataReader verificaRecord = cmdVerifica.ExecuteReader(); verificaRecord.Read(); String emailVerifica = verificaRecord["chiaveAccesso"].ToString(); if (verificaRecord!= null && verificaRecord.HasRows) { lblMessaggioPassword.Text = "La sua password è: " + emailVerifica + ""; } else { lblMessaggioNoAccount.Text = "Indirizzo E-mail non presente nel database"; } } //Fine script per recupero password </SCRIPT> Questo è il relativo modulo: E-Mail:<asp:TextBox id="email" runat="server" class="testo" Width="231px"></asp:TextBox> *<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="Il campo è obbligatorio" ControlToValidate="email"></asp:RequiredFieldValidator> </p><p class="testoContatti">*Campi Obbligatori</p> <p class="testo"> <asp:Button runat="server" Text="Recupera la password" class="testo" onClick="sendPassword" id="recuperaPassword" /> <asp:Label id="lblMessaggioPassword" runat="server"></asp:Label><asp:Label id="lblMessaggioNoAccount" runat="server"></asp:Label>
Separatamente funzionano, in coppia invece possamo dire che funziona solo la procedura per recuperare la password.codice:<SCRIPT LANGUAGE="C#" RUNAT="server"> public void accessLogin (Object Obj, EventArgs E) { string username = this.username.Text.Replace("'" , "''"); string password = this.password.Text.Replace("'" , "''"); //Componiamo la stringa di connessione String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("database/xzzxzxzxzcz.mdb"); //Creiamo l'oggetto cn di tipo OleDbConnection //passando la stringa di connessione al costruttore OleDbConnection cn = new OleDbConnection(ConnString); //Apriamo la connessione cn.Open(); //Componiamo la stringa di interrogazione al database String sql = "SELECT * FROM iscritti WHERE email = '" + username + "' AND chiaveAccesso = '" + password + "' AND stato = True"; //Creiamo l'oggetto cmd di tipo OleDbCommand //passando la sql e la connessione al costruttore dell'oggetto OleDbCommand cmd = new OleDbCommand(sql, cn); //Creiamo un oggetto di tipo OleDbDataReader //Esso è assimilabile a un RecordSet con cursore di tipo forward-only in ASP tradizionale OleDbDataReader rdr = cmd.ExecuteReader(); //Visualizziamo i record del DataReader appena creato rdr.Read(); String usernameLogin; usernameLogin = username; if(rdr.HasRows) Response.Redirect ("loginOk.asp?username="+System.Web.HttpUtility.UrlEncode(usernameLogin)+""); else lblErroreLogin.Text = "Credeziali di accesso errate"; rdr.Close(); //Chiudiamo la connessione al database cn.Close(); } </SCRIPT> Username: <asp:Textbox id="username" runat="server" class="testo" size="26"/> Password: <asp:Textbox id="password" runat="server" class="testo" size="26"/> <asp:button Text="Invia" onClick="accessLogin" id="Send" runat="server" class="testo"/> <asp:Label id="lblErroreLogin" runat="server"></asp:Label> Recupera la password
Potete fornirmi qualche suggerimento?

Rispondi quotando