• User

    come creare un carrello

    Salve a tutti gli amici del forum!
    Ho un problema con un tutorial che ho trovato nel web,riguardante i codici per creare un carrello nel proprio sito.Nonostante il mio impegno non sono riuscito a metterlo in funzione,riesco solo a vedere le pagine che formono il sistema,tipo:"il login,l'index e il carrello", ma non riesco (come gia detto)a fare andare i prodotti nel carrello,ad aggiornarlo in base alla quantità del prodotto,all'eliminazione del prodotto,in pratita niente!!.Di sicuro sbaglio nel modicare alcune variante sulle descrizioni del prodotto,su quelle che devo modificare e quelle che devo lasciare intatte.Con Html sono pratico più sulla parte grafica che logica,quindi se qualcuno può aiutarmi nel riconoscere le parti da modificare ne sarei davvero grato.
    Qui sotto troverete il tutorial con i codici:

    Una sezione protetta
    Riprendendo l' esempio proposto nella vecchia tip, mi limitero' a visualizzare il codice sorgente modificato, necessario a realizzare un' area protetta senza soffermarmi molto sui commenti.
    Prima di creare il file di verifica (verifica.asp), dobbiamo connetterci al nostro database, per fare questo, creeremo un file di nome "connessione.asp" che conterra' il codice per mantenere la connessione al database.
    Di seguito visualizzo il codice del file connessione.asp che verra' incluso in tutte le pagine del nostro sistema.

    File: connessione.asp

    Codice:
    [LEFT]<%'Connessione al databaseset con = server.createobject("ADODB.Connection")con.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("db.mdb")%>[/LEFT]

    Fatto questo, passiamo a realizzare la pagina di login che servira' per identificare l' utente e permetterne la navigazione del sito e l' utilizzo del carrello.
    Di seguito visualizzo il codice completo della pagina login.asp (una semplice pagina html con una Form)

    File: login.asp

    Codice:
    [LEFT]<%session.abandon%><html><head> <title>Login</title></head><body><table width="300" align="center" border="1"> <form method="post" action="index.asp"> <tr> <td colspan="2" align="center">LOGIN</td> </tr> <tr> <td>Username:</td> <td><input type="text" name="txt_username"></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="txt_password"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="entra"></td> </tr> </form></table></body></html>[/LEFT]

    Il metodo .abandon dell' oggetto session permette di cancellare tutte le sessioni avviate, nel nostro caso e' utile se abbiamo la necessita' di eseguire piu' login con dati di accesso differenti.

    Verifica.asp

    Adesso che abbiamo creato il pannello di login per entrare nel nostro carrello, dobbiamo pensare alla realizzazione di uno dei file piu' importanti, "verifica.asp", come spiegavo in precedenza, questo file verra' incluso in tutte le pagine protette del nostro sistema (ad esempio: carrello.asp), per controllare che l' utente sia loggato o meno.

    File: verifica.asp

    Codice:
    [LEFT]<%if len(session("id_utente")) = 0 then 'Prelevo i dati dal pannello di Login username = request("txt_username") password = request("txt_password") 'Effettuo il controllo strsql = "select id, username, password from tbl_Clienti where username = '" & username & "' and password = '" & password & "'" set rs = con.execute(strsql) if not rs.eof then session("id_utente") = rs("id") else response.redirect "login.asp" end if rs.close set rs = nothingend if%>[/LEFT]

    Come potete notare, creo una sessione (session("id") = rs("id")) che servira' a mantenere l' id dell' utente per tutta la navigazione del sito

    Visualizziamo i prodotti

    Una volta che l' utente e' loggatto, possiamo iniziare a visualizzare l' elenco di tutti i prodotti e successivamente l' utente decidera' quale di questi prodotti nserire nel carrello.

    File: index.asp

    Codice:
    [LEFT]<!--#include file="connessione.asp"--> <!--#include file="verifica.asp"--> <html><head> <title>I nostri prodotti</title></head><body><h1>Tutti i nostri prodotti</h1><hr><%'Colleghiamoci alla tabella tbl_Prodottistrsql = "select * from tbl_Prodotti order by nome asc"set rs = con.execute(strsql) 'Scorro tutti i prodotti while not rs.eof id = rs("id") nome = rs("nome") info = rs("info") prezzo = rs("prezzo") %> <li>Prodotto: <%=nome%> <li>Descrizione: <i><%=info%></i> <li>Prezzo: <%=prezzo%> ? <li><a href="carrello.asp?id=<%=id%>">Aggiungi al carrello</a> <hr> <% rs.movenext wendrs.closeset rs = nothing%></body></html>[/LEFT]

    Il nostro Carrello

    Come spiegavo in precedenza, la pagina index.asp provvede ad elencare la lista di tutti i nostri prodotti, mostrando il nome del prodotto, alcune informazioni e il prezzo. Inoltre notiamo il link <a href="carrello.asp?id=<%=id%>">Aggiungi al carrello</a>, questo e' necessario per inserire il prodotto da noi desiderato (ad esempio: id=2) nel carrello.
    Adesso non ci resta che realizzare l' ultima pagina, anche la piu' importante di tutto il sistema, carrello.asp che provvedera' a gestire il nostro carrello. Seguiamo di seguito il codice sorgente completo e commentato della pagina carrello.asp:
    Il codice e' stato suddiviso in piu' parti per motivi di lunghezza (quasi 150 righe di codice) 😉

    File: carrello.asp (1° parte - Aggiunta prodotto nel carrello)

    Codice:
    [LEFT]<!--#include file="connessione.asp"--> <!--#include file="verifica.asp"--> <!--#include file="ADOVBS.INC"--> <%'Richiamo l' id del prodotto da inserireid_prodotto = request("id")'Aggiunta nuovo prodotto nel Carrello'Controllo che il prodotto sia già presente nel carrelloif len(id_prodotto) <> 0 then strSQL = "select id_prodotto, id_user from tbl_Carrello where id_prodotto = " & id_prodotto & " and id_user = " & session("id_utente") set rs = con.execute(strSQL) 'Se il prodotto non esiste, lo aggiungo 'Altrimenti aggiorno la quantita' di 1 unità if rs.eof then 'Aggiungo il prodotto strSQL = "insert into tbl_Carrello(id_user, id_prodotto, quantita) values(" & session("id_utente") & ", " & id_prodotto & ", 1)" con.execute(strSQL) else 'Aggiorno la quantità strSQL = "update tbl_Carrello set quantita = quantita + 1 where id_prodotto = " & id_prodotto & " and id_user = " & session("id_utente") con.execute(strSQL) end if rs.close set rs = nothingend if'Fine...[/LEFT]

    In questa prima parte del codice, abbiamo visto come vengono aggiunti o aggiornati dei prodotti quando si clicca sul link "Aggiungi al carrello" dalla pagina index.asp. Come possiamo notare, all' inizio della pagina viene incluso un nuovo file, ADOVBS.INC, a cosa serve ? Questo file porta con se tutte le costanti ADO ed i rispettivi valori per lavorare in modo piu' semplice con i database, inoltre per migliorare la lettura del codice sorgente.
    Il file ADOVBS.INC comunque lo trovate nel codice completo scaricabile a fine tutorial 😉

    File: carrello.asp (2° parte - Aggiorno/Elimino i prodotti)

    Codice:
    [LEFT]...'Aggiorno il carrelloif request("azione") = "aggiorna" then 'Controllo quali prodotti aggiornare o eliminare set rs = Server.CreateObject("ADODB.Recordset") rs.activeconnection = con rs.cursortype = adOpenDynamic rs.locktype = adLockOptimistic strsql = "select * from tbl_Carrello where id_user = " & session("id_utente") rs.open strsql 'Elenco dei prodotti nel carrello 'E modifica... while not rs.eof pc = request("pc_" & rs("id_prodotto")) if isnumeric(pc) then if pc = 0 then rs.delete else rs("quantita") = pc end if end if rs.movenext wend 'Fine rs.close set rs = nothing 'Fineend if%>[/LEFT]

    Nella seconda parte del codice si fa uso del file ADOVBS.INC, in grassetto ho evidenziato le costanti utilizzate. Adesso visualizzero' la terza e ultima parte del codice, questa provvedera' ad elencare tutti i prodotti del carrello.

    File: carrello.asp (3° parte - Visualizzo i prodotti nel carrello)

    Codice:
    [LEFT]...<html><head> <title>Il tuo carrello</title></head><body><h1>Il tuo Carrello</h1><hr><table align="center" width="500" border="1"> <form method="post" action="carrello.asp?azione=aggiorna"> <tr bgcolor="#C0C0C0"> <td align="center" width="300">Prodotto</td> <td align="center" width="100">Quantita'</td> <td align="center" width="100">Prezzo</td> </tr> <% 'Inizializzo le variabili per il prezzo totale var_tot = 0 'Visualizzo tutti i prodotti del carrello strSQL = "select id_prodotto, id_user, quantita from tbl_Carrello where id_user = " & session("id_utente") set rs = con.execute(strSQL) 'Il carrello e' vuoto ? if rs.eof then %> <tr> <td colspan="3" align="center"> Il tuo carrello e' vuoto<br> <a href="index.asp">Torna ai prodotti</a> </td> </tr> <% end if 'Fine 'Elenco dei prodotti while not rs.eof 'Prelevo tutti i dati dal carrello id_prodotto = rs("id_prodotto") qnt = rs("quantita") 'Richiamo le informazioni relative al prodotto 'e aggiorno il valore del prezzo totale strSQL = "select nome, prezzo from tbl_Prodotti where id = " & id_prodotto set rs2 = con.execute(strSQL) nome = rs2("nome") prezzo = rs2("prezzo") var_tot = var_tot + (prezzo * qnt) rs2.close set rs2 = nothing 'Fine 'Visualizzo i prodotti nella tabella %> <tr> <td><%=nome%></td> <td><input type="text" name="pc_<%=id_prodotto%>" value="<%=qnt%>" size="2" maxlength="2"></td> <td><%=formatnumber(prezzo, 2)%> ?</td> </tr> <% 'Fine rs.movenext wend rs.close set rs = nothing 'Fine %> <tr> <td colspan="2" bgcolor="#C0C0C0" align="center"> <input type="submit" value="aggiorna carrello"> </td> <td> Tot. <%=formatnumber(var_tot, 2)%> ? </td> </tr> <tr> <td colspan="3"> Quantità = 0 (elimina il prodotto dal carrello) <br><a href="index.asp">Torna ai prodotti</a> </td> </tr> </form></table></body></html>[/LEFT]


  • User Attivo

    Ciao cat77,

    ho spostato la tua domanda nella sezione "Asp & Asp.net" in quanto il codice che hai postato e' scritto con quel linguaggio.

    Inoltre, per rendere piu' leggibile il codice, la prossima volta usa l'apposito tag per il codice appunto.

    Buon fortuna

    :ciauz:


  • Super User

    Ciao,
    il tutorial senza le tue modifiche funziona?