Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema Negozio Online In Asp!!!

    Salve a tutti
    ho un problema riguardante un conflitto tra due database per la gestione di un negozio online.
    vi faccio vedere le due coppie di pagine (quelle sia .html che .asp) riguardanti il login e la registrazione che effettua un utente:

    pagina login.html:
    codice:
    <HTML>
       <HEAD> 
              <TITLE> </TITLE> 
              <style>
                             fieldset {
                                 font-size:100%;
                                 border:1px solid #000000;
                                 background-color:skyblue;
                                 color:#000000;
                                 padding:3px;
                             }
               </style>        
       </HEAD>
     
    
       <BODY bgcolor="lightgreen">
          <CENTER>  <FONT color="lightred"> <H1> EFFETUA IL LOGIN </H1>  </FONT> </CENTER>
          <HR> 
          
    
     
     
     
    
          <CENTER>
                <FORM method="post" action="login.asp">
                   <BLOCKQUOTE><BLOCKQUOTE>
                      <FIELDSET><LEGEND>Login</LEGEND>
                      
    
    
                      <TABLE>
                            <TR>
                                  <TD>USERNAME:</TD> 
                                  <TD> <input name="nick" size="20" value="">  
                             </TR>
                             <TR>
                                   <TD>PASSWORD:</TD> 
                                   <TD> <input type="password" name="pass" size="20" value="">
                              </TR>
                       </TABLE> 
                       
    
                       <INPUT type="submit" size="20" value="INVIA">
                       <INPUT type="reset" size="20" value="ANNULLA">
                       
    
    
                       </FIELDSET>
                   </BLOCKQUOTE></BLOCKQUOTE>
                </FORM>     
          </CENTER>
       </BODY>
    </HTML>
    ecco il login.asp:
    codice:
    <%@ LANGUAGE = VBScript %>
    
    <%
          'prelievo delle stringhe del'username e della password
          StringNick = request.Form("nick")
          StringPass = request.Form("pass")
    
          'stringa di connessione al database
          strconn="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
          strconn=strconn+Server.MapPath("Utente.mdb")
       
          'istanze degli oggetti Connection e Recordset
          set conn = Server.CreateObject("ADODB.Connection")
          set rs = Server.CreateObject("ADODB.Recordset")
         
          'apertura connessione
          conn.Open strconn
     
          'apertura recordset 
          rs.Open "TabUtente", conn
    %>
    
    <HTML>
         <body text="" bgcolor="lightgreen">
              <CENTER>  <FONT color="lightred"> <H1> EFFETUA IL LOGIN </H1>  </FONT> </CENTER>
              <HR> 
              
    
     
     
     
    
              <% 
                   comodo=0
                   rs.MoveFirst
                   Do While Not rs.EOF
                          IF (Ucase(rs("NickName"))=Ucase(StringNick)) AND (Ucase(rs("Password"))=Ucase(StringPass)) THEN%>
                                  
    
    
    <CENTER><H2>SEI REGISTRATO!</H2></CENTER>
                                  <ALIGN='JUSTIFY'>BENVENUTO/A <%=StringNick%> : I TUOI DATI SONO REGISTRATI. VAI NELLA SEZIONE ACQUISTA PER ORDINARE I PRODOTTI CHE PREFERISCI.</ALIGN>
                                  <%comodo=1         
                          END IF
                          rs.MoveNext
                   Loop 
                              
                   if (comodo=0) then
                       Response.Write "
    
    
    <CENTER><H2>NON SEI REGISTRATO!</H2></CENTER>" 
                       Response.Write "<CENTER>ATTENZIONE! PRIMA DI EFFETTUARE IL LOGIN AL SITO, DEVI REGISTRARTI!</CENTER>" 
                   End if
    
                    'chiusura del data base e della connesione
                    rs.Close
                    conn.Close
                    Set rs=nothing
                    Set conn=nothing 
               %>
                    
         </BODY>
    </HTML>

    ecco invece le due pagine della registrazione
    RegistrazioneCliente.html:
    codice:
    <html>
      <head>
          <title>Inserimento dati in un data base</title>
          <style>
                fieldset {
                      font-size:100%;
                      border:1px solid #000000;
                      background-color:skyblue;
                      color:#000000;
                      padding:3px;
                }
          </style>  
    
     </head>
    <BODY text="" bgcolor="lightgreen">
         <CENTER>  <FONT color="lightred"> <H1> REGISTRATI NEL NOSTRO DATABASE: </H1> </FONT> </CENTER>
         <HR> 
         
    
    
         
    
         <CENTER>
            <form method=post action="RegistrazioneCliente.asp">
               <BLOCKQUOTE><BLOCKQUOTE>
                      <FIELDSET><LEGEND>Registrazione</LEGEND>
                      
    
    
                      <table>
                          <tr>
                              <td align=right>NICKNAME:</td>
                              <td align=left><input name="txtnickname"> (min 6 caratteri, max 16 caratteri) </td>
                          </tr>
                          <tr>
                              <td align=right>PASSWORD:</td>
                              <td align=left><input type="PASSWORD" name="txtpassword"> (min 6 caratteri, max 16 caratteri) </td>
                          </tr>
                          <tr>
                              <td align=right>E-MAIL:</td>
                              <td align=left><input name="txtemail"></td>
                          </tr>
                          <tr>
                              <td align=right>NOME:</td>
                              <td align=left><input name="txtnome">  </td>
                          </tr>
                          <tr>
                              <td align=right>COGNOME:</td>
                              <td align=left><input name="txtcognome"> </td>
                         </tr>
                      </table>
                      
     
                      <input type="reset" value="CANCELLA">    <input type="submit" value="INVIA">
                      
    
    
                      </FIELDSET>
               </BLOCKQUOTE></BLOCKQUOTE>
            </form>
         </CENTER>
    </body>
    </html>
    RegistrazioneCliente.asp:
    codice:
    <%@ language="VBScript" %>
    <% option explicit %>
    
    
      
    
    
    <%
      
      'La linea di codice sottostante esegue un controllo sulla creazione degli errori di inserimento dati
      on error resume next
    
    
      'La variabile objconn è usata per effettuare la connessione al database
        dim objConn
    
    
      'viene generata un'istanza dell'oggetto ADODB.Connection
        set objConn = Server.CreateObject("ADODB.Connection")
    
    
      'con ConnectionString viene definito il tipo di driver utilizzato per il database e il suo percorso fisico
        objConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Inetpub\wwwroot\NegozioOnLine\db_utenti.mdb"
    
    
      'viene aperto e scritto il database
      objConn.Open
      dim objRs
      set objRs = Server.CreateObject("ADODB.Recordset")
      
      'La stringa di codice riportata sotto apre la tabella "utenti" tramite la connessione 
       (objConn) creata nel file "RegistrazioneCliente.asp", specificando 
       che si tratta di una tabella permanente (adCmdTable), una delle tabelle che compongono 
       il data base, da aprire in modo ottimistico (adLockOptimistic), cioè in scrittura.
      objRs.Open "utenti", objConn, , adLockOptimistic, adCmdTable
      objRs.AddNew
      objRs("NickName")=Request.Form("txtnickname")
      objRs("Password")=Request.Form("txtpassword")
      objRs("Email")=Request.Form("txtemail")
      objRs("Nome")=Request.Form("txtnome")
      objRs("Cognome")=Request.Form("txtcognome")
    
      'viene aggiornato il database
      objRs.Update
    
      'il database viene chiuso con il metodo close e settato a zero con il parametro nothing
      objRs.Close
      Set objRs=Nothing
      
    
      objConn.Close
      Set objConn=Nothing
    %>
    
    
    <html>
       <head>
          <title>Inserimento dati</title>
       </head>
       <BODY text="lightred" bgcolor="lightgreen">
       <%
           'viene effettuto un controllo inerente la possibile generazione di errori durante l'inserimento di dati
           If err.number>0 then 
               response.write "
    
    
    
    
    
    
    
    
    <CENTER><H1> ERRORE NELL'INSERIMENTO, RIPROVA </H1></CENTER>"
           Else
               response.write "
    
    
    
    
    
    
    
    
    <CENTER><H1> I DATI SONO STATI INSERITI CORRETTAMENTE </H1></CENTER>"
           End if
       %>
       </body>
    </html>
    si può ben notare che con il login uso un database e con la registrazione ne uso un altro.
    invece vorrei farlo funzionare con uno solo.
    il problema è che se cambio quello del login e metto il database della registrazione mi dice (quando effettuo il login) NON SEI REGISTRATO!.
    se invece metto il database del login al posto di quello della registrazione mi dà poi l'errore nella registrazione.
    Eppure i database sono identici con le stesse chivi primarie (NickName e Password).
    Come posso risolvere questo problema???
    ringrazio anticipatamente.

    ps:spero di avere delle risposte entro oggi graize mille.

  2. #2
    Forse oltre a cambiare il nome del database, devi cambiare anche il nome della tabella

    da
    rs.Open "TabUtente", conn
    a
    rs.Open "utenti", conn



  3. #3
    hai tanta confusione in testa...io ridarei un'occhiata alla guida asp di base...e poi scusa una cosa, ma se l'utente l'hai registrato nel database del login, come fa ad esserci anche nell'altro database? che fai ogni volta hai duplicato i dati?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    159
    Concordo, credo ci sia una errata gestione dei contenuti.

    <per il login ti consiglio di inserire al limite un campo aggiuntivo nel database delle registrazioni in cui cambi lo stato con un campo si/no <8booleano in somm). Risparmi spazio, tempo e memoria.

  5. #5
    Originariamente inviato da michele.santoro
    Forse oltre a cambiare il nome del database, devi cambiare anche il nome della tabella

    da
    rs.Open "TabUtente", conn
    a
    rs.Open "utenti", conn


    già fatto
    cmq grazie lo stesso
    ciao

  6. #6
    Originariamente inviato da santino83
    hai tanta confusione in testa...io ridarei un'occhiata alla guida asp di base...e poi scusa una cosa, ma se l'utente l'hai registrato nel database del login, come fa ad esserci anche nell'altro database? che fai ogni volta hai duplicato i dati?
    no siccome le due cose le ho fatte in due momenti diversi, ne ho creati due ed ora non riesco ad eliminarle uno ed utilizzare solo quello.
    grazie
    ciao

  7. #7
    Non ho capito se ci sei riuscito o no, comunque questa è l'unica modifica da fare in
    login.asp che è l'unico file che deve essere modificato solo nella connessione al database per quanto riguarda il nome del db e il nome della tabella, come ti avevo detto. Tutto il resto resta uguale.
    Puoi ricopiarlo quì sotto già corretto
    codice:
    <%@ LANGUAGE = VBScript %>
    
    <%
          'prelievo delle stringhe del'username e della password
          StringNick = request.Form("nick")
          StringPass = request.Form("pass")
    
          'stringa di connessione al database
          strconn="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
          strconn=strconn+Server.MapPath("db_utenti.mdb")
       
          'istanze degli oggetti Connection e Recordset
          set conn = Server.CreateObject("ADODB.Connection")
          set rs = Server.CreateObject("ADODB.Recordset")
         
          'apertura connessione
          conn.Open strconn
     
          'apertura recordset 
          rs.Open "utenti", conn
    %>
    
    <HTML>
         <body text="" bgcolor="lightgreen">
              <CENTER>  <FONT color="lightred"> <H1> EFFETUA IL LOGIN </H1>  </FONT> </CENTER>
              <HR> 
              
    
     
     
     
    
              <% 
                   comodo=0
                   rs.MoveFirst
                   Do While Not rs.EOF
                          IF (Ucase(rs("NickName"))=Ucase(StringNick)) AND (Ucase(rs("Password"))=Ucase(StringPass)) THEN%>
                                  
    
    
    <CENTER><H2>SEI REGISTRATO!</H2></CENTER>
                                  <ALIGN='JUSTIFY'>BENVENUTO/A <%=StringNick%> : I TUOI DATI SONO REGISTRATI. VAI NELLA SEZIONE ACQUISTA PER ORDINARE I PRODOTTI CHE PREFERISCI.</ALIGN>
                                  <%comodo=1         
                          END IF
                          rs.MoveNext
                   Loop 
                              
                   if (comodo=0) then
                       Response.Write "
    
    
    <CENTER><H2>NON SEI REGISTRATO!</H2></CENTER>" 
                       Response.Write "<CENTER>ATTENZIONE! PRIMA DI EFFETTUARE IL LOGIN AL SITO, DEVI REGISTRARTI!</CENTER>" 
                   End if
    
                    'chiusura del data base e della connesione
                    rs.Close
                    conn.Close
                    Set rs=nothing
                    Set conn=nothing 
               %>
                    
         </BODY>
    </HTML>
    Devi usare solo il database db_utenti.mdb
    Non so se sono stato chiaro, ma sai data l'ora ...

  8. #8
    quto michele.santoro e aggiugno che nel nuovo database ci devono essere tutti gli utenti che stavano nel vecchio

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.