Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262

    Memorizzare più acquisti in una sessione

    Salve a tutto il forum e buon natale
    Ho un carrello della spesa in cui gli acquisti coi dati dell'art. sono memorizzati in una session,ora il mio problema è ke non so come fare per memorizzare più acquisti nella stessa variabile e poi naturalmente farli vedere nella pagina di riepilogo.

    posto il file basket.asp (cioè la pagina che memorizza l'acquisto prima del definitivo inserimento nel DB

    codice:
    <%
    Arr_Campi = Split(Session("ordine"), "|")
    
    For i=0 to Ubound(Arr_Campi)
       response.write Arr_Campi(i) & "
    "
    next
    
    session("qta")=sqta
    session("idcliente")=sidcliente
    session("email")=semail
    sqta=request.Form("qta")
    sidcliente=request.Form("idcliente")
    semail=request.Form("email")
    %>
    <title>ALIWORK SHOP - <%= FormatDateTime(Date(),vbLongDate)%></title>
    <center>
      <h1><font color="red" size="6">Complimenti per l'acquisto !!!</font></h1>
      <h2><font size="4">Sarai contattato al pi&ugrave; presto dalla Aliwork. </font> 
      </h2>
      
    
    <font size="4">Per acquistare ancora scegli la lista a lato</font></p>
     
    
    </p></center>
    
    
    
    </p>
    
    
    </p>
    <table width="200" border="1">
      <tr>
        <td><font size="2">Id cliente: </font><font size="2"><%=sidcliente%></font></td>
      </tr>
      <tr>
        <td><font size="2">Email</font><font size="2"> cliente:</font><font size="2"> <%=semail%></font></td>
      </tr>
      <tr>
        <td><font size="2">Data: </font><font size="2"><%=sdata%></font></td>
      </tr>
    </table>
    
    
    </p>
    
    
    </p>
    
    <table width="344" height="34" border="1" align="left">
      <tr align="center" valign="middle">
        <td width="192" height="28"><form action="hardfrs.asp" method="post" name="cont_shop" target="_parent" id="cont_shop">
          <div align="center">
            <input type="submit" name="Submit" value="Continua lo shopping">
          </div>
        </form></td>
        <td width="136"><form action="ADD3.ASP" method="post" name="cont_shop" target="_self" id="cont_shop">
          <div align="center">
            <input name="compra" type="submit" id="compra" value="Compra">
          </div>
        </form></td>
      </tr>
    </table>
      <SCRIPT Language="Javascript">
    
    function printit(){  
    if (window.print) {
        window.print() ;  
    } else {
        var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
    document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
        WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
    }
      </script>
      <script language="Javascript1.2">
    
    
    
    var message = "Stampa questa pagina";
    
    function printpage() {
    window.print();  
    }
    
    document.write("<form><input type=button "
    +"value=\""+message+"\" onClick=\"printpage()\"></form>");
    
      </script>

  2. #2
    ciao Nilats, se utilizzi 5/6 sessioni per ogni utente, nel momento che hai parecchi utenti connessi rischi di far sedere il server inoltre una sessione scade dopo 10 o 20 minuti, a seconda del S.O. installato sul server (Win2003 o Win2000 rispettivamente), quindi rischi anche che un utente si veda azzerare tutto quello che ha precedentemente inserito nel carrello...

    la soluzione migliore rimane sempre quella di memorizzare in un db o su un file di testo tutti i valori che invece inserisci nella session()

    comunque per risolvere il tuo problema bisogna vedere come vengono aggiunti i nuovi prodotti, quindi dovresti postare il codice del file ADD3.ASP

    ciao.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    ciao Fulviolo.
    da quando ho fatto il file add3 ho fatto molti cambiamenti,usando una variabile ordine che mi racchiude tutti i valori presi da una form coi dati dell'art., e che poi punta alla pagina basket (qnke quuesta nuova.però devo dirti ke la soluzione della session non mi convince molto, e preferirei lavorare coi cookies, magari anke cambiando un po l'architettura (se mi dai una mano...)

  4. #4
    Ciao Nilats, bhè, già l'idea dei cookies, anche se non è il massimo della sicurezza, è comunque secondo me più funzionale di quella di memorizzare tutto in una session...

    passare ai cookies non è assolutamente complicato, li usi come una session solo che li scrivi sul pc dell'utente e li leggi quando ti servono i dati.

    l'unica accortezza quando scrivi l'elenco dei prodotti acquistati, se utilizzi una coppia di valori per ogni articolo (quantità e codice articolo) memorizzali separati ad esempio da un ; e poi tra loro (quantità e codice art.) li separi con una virgola, in questo modo avrai un cookie del genere:

    Cookies("Nilats")("articoli") = 2,123; 3,456; 1,741

    n° 2 pezzi dell'articolo 123,
    n° 3 pezzi dell'articolo 456,
    n° 1 pezzo dell'articolo 741

    in questo modo quando hai bisogno di fare un riepilogo utilizzi la funzione Split() prima separando le coppie di valori per ;

    Elenco = Split(Response.Cookies("Nilats")("articoli"), ";")

    così avrai solo le coppie di valori 2,123 3,456 1,741

    adesso splitti ogni coppia per ,

    Dettaglio = Split(Elenco(0), ",") -> Dettaglio(0) = 2 Dettaglio(1) = 123

    Dettaglio = Split(Elenco(1), ",") -> Dettaglio(0) = 3 Dettaglio(1) = 456

    Dettaglio = Split(Elenco(2), ",") -> Dettaglio(0) = 1 Dettaglio(1) = 741

    spero sia abbastanza chiaro...

    ciao.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    si, fulviolo tu sei chiaro..
    ma io cmq non capisco bene una cosa:
    all'atto dell'acquisto un form passa dei valori hidden (presi dal DB) che poi una pagina recupera e processa.
    Allora io devo scrivere nel cookie tutti i valori del form?
    cosi facevo prima:

    codice:
    <% 
    dim scodhw 
    dim sart 
    dim scat 
    dim sprz 
    dim sdescr 
    dim sdata 
    'questi sotto sono campi nascosti ke mi recupera dal form della login 
    scodhw=request.Form("codhw") 
    scat=request.Form("cat") 
    sart=request.Form("art") 
    sdescr=request.Form("descr") 
    sprz=request.Form("prz") 
    sdata=request.Form("data") 
    if chknull(scodhw) and chknull(scat) and chknull(sart) then 
    ordine=session("ordine") 
    l_ordine=split(ordine,"|") 
    scodhw=l_ordine(0) 
    scat=l_ordine(1) 
    sart=l_ordine(2) 
    sdescr=l_ordine(3) 
    sprz=l_ordine(4) 
    sdata=l_ordine(5) 
    end if 
    Session("ordine") = scodhw & "|" & scat & "|" & sart & "|" & sdescr & "|" & sprz& "|" & sdata & "|" 
    %>
    Dovrei fare così?

    codice:
    <% 
    dim scodhw 
    dim sart 
    dim scat 
    dim sprz 
    dim sdescr 
    dim sdata 
    'questi sotto sono campi nascosti ke mi recupera dal form della login e li scrive nei cookies
    Response.Cookies("ordine")("ordine") = Request.Form("scod,sart,scat,sprz,sdescr,sdata")
    Response.Cookies("ordine").Expires = Date + 2

  6. #6
    Ma usare delle tabelle di appoggio sulle quali inserire i dati, ma gestire gli stessi come acquisto non ancora confermato, non semplificherebbe la problematica?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    Maximum scusa x la risp. in ritardo (sn ora a casa)
    ma non capisco ke vuoi dire?dici di memorizzare il tutto in un DB?

  8. #8
    Originariamente inviato da maximum
    Ma usare delle tabelle di appoggio sulle quali inserire i dati, ma gestire gli stessi come acquisto non ancora confermato, non semplificherebbe la problematica?
    ...era la prima cosa che avevo proposto, ma dopo anni sugli e-commerce vedo sempre che c'è chi preferisce soluzioni "alternative"... e magari da queste ti arrivano nuove idee.

    Originariamente inviato da nilats
    si, fulviolo tu sei chiaro..
    ma io cmq non capisco bene una cosa:
    all'atto dell'acquisto un form passa dei valori hidden (presi dal DB) che poi una pagina recupera e processa.
    se posso darti un consiglio... scarica l'applicazione open source da www.mwopen.it e guarda anche solo come è strutturata per farti un'idea di come proseguire con il tuo lavoro, poi per ogni problema penso che anche su questo forum chiunque ti possa dare una mano.

    ciao, fulvio.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    ok, grazie sempre fulviolo...
    speriamo bene...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.