• User

    Ma il problema sorge nel caso in cui ci fossere più utenti collegati allo stesso momento al sito?

    Cioè comunque quando chiudo il browser la connessine si chiude,o no?

    E comunque sai come posso controllare il numero di connessioni massime supportare dal db?


  • User

    azz!!!

    Dopo aver pubblicato il mio lavoro ho visto che il provider non supporta le connessioni persistenti :arrabbiato:

    Hai qualche consiglio su come fare una cosa simile?

    Praticamente usavo la tabella temporanea come carrello...nel caso in cui l'utente chiudeva il browser la tabella si cancellava e non mi andava a creare una tabella fissa sul database che poi non sarebbe mai stata cancellata,con conseguente occupazione di spazio non più utilizzato.


  • User Attivo

    Immaginavo ma non volevo fare il guastafeste...
    Per il carrello elettronico, in assoluto, lo strumento di gran lunga più adatto, più semplice e più flessibie è la sessione.

    All'inizio di ogni script scrivi:

    session_start();

    poi quando vuoi memorizzare qualcosa scrivi:

    $_SESSION['quantita']=3;
    $_SESSION['prodotto']='scatola di fagioli';
    $_SESSION['quello_vuoi']='quello che vuoi 2 volte!';

    l'array $_SESSION è simile a $_POST o $_GET: è una variabile globale sempre disponibile. La cosa bella è che passando da una pagina all'altra (o anche andando in altri siti e tornando) il dato è sempre lì (beh... più o meno :D).

    Quando hai fatto tutti i giochi che vuoi (email, ordini, aggiornamenti db, ecc) se vuoi puoi chiudere la sessione con:

    session_unset();
    $_SESSION = array();
    setcookie(session_name(), '', 1, '/');
    session_destroy();

    E' molto più facile di quanto immagini. :fumato:
    :ciauz:


  • User

    Grazie Ceccus x non avermi guastato la festa!!

    Ero così gasato ieri sera che mi funzionava tutto!Poi ho pubblicato....e sono tornato sulla terra!

    Senti,allora alle sessioni avevo già pensato,infatti le utilizzo,ma avevo optato per la tabella perchè se dovessi avere più di un prodotto come posso fare per visualizzare una lista del carrello?

    Con la tabella era una figata perchè la gestivo da paura,invece con una variabile come gestisco per esempio 2 descrizioni?

    P.S. Grazie x l'aiuto!


  • User Attivo

    Array di array :fumato:

    $_SESSION['dati']['email']
    $_SESSION['dati']['nome']
    (...)
    $_SESSION['prodotti']['nome'][1]='patate'
    $_SESSION['prodotti']['nome'][2]='cipolle'

    $_SESSION['prodotti']['prezzo'][1]=2 //? relativo alle patate
    $_SESSION['prodotti']['prezzo'][2]=3 //? relativo alle cipolle

    te la puoi gestire veramente come ti pare!


  • User

    si più o meno ho capito

    quello che non riesco a fare è una cosa un po più "dinamica" nel senso che i numeri dovrebbero incrementarsi tanti quanti sono i prodotti ne carrello e quindi lì dovrei mettere una cosa del tipo:

    $_SESSION['prodotti']['nome']='patate'
    $_SESSION['prodotti']['nome']='cipolle'

    o no?

    poi come stampo il tutto?

    sto facendo molto prove,ma non arrivo a niente.E' la prima volta che uso array di array.

    grazie per la pazienza


  • User

    Ho risolto cos': dimmi che ne pensi,se vuoi....

    //registro
    $_SESSION['carrello'][]['id_regalo'] = "$row[id]";
    $_SESSION['carrello'][]['miniatura'] = "$row[miniatura]";
    $_SESSION['carrello'][]['nome'] = "$row[nome]";
    $_SESSION['carrello'][]['descrizione'] = "$row[descrizione]";
    $_SESSION['carrello'][]['prezzo'] = "row[prezzo]";

    //stampo
    foreach ($_SESSION['carrello'] as $value){
    print ("$value[id_regalo]<br>");
    print ("$value[nome]<br>");
    print ("$value[descrizione]<br>");
    print ("$value[prezzo]<br>");
    }

    Cioè,risolto per modo di dire,perhè se stampo quello sopra mi lascia degli spazi allucinanti tra una scritta e l'altra,come se stampasse righe vuote.

    in teoria dovrebbe essere giusto così,ma non mi stampan niente:

    foreach ($_SESSION['carrello'] as $value){
    print ($_SESSION['carrello'][$value]['nome']."<br>");
    ...
    ...
    }


  • User

    Sto praticamente facendo un monologo,volevo modificare il posto già scritto,ma non me lo fa più fare...cmq ho risolto!

    Solo un'ultima cosa....se voi cancellare un prodotto inserito...

    ho provato si a unset che a mettere caratteri vuoti

    Il problema è che quando vado a ristampare l'array mi fa una righa ti tabella in più vuota,che sarebbe l'oggetto che ho cancellato.

    Come posso risolvere?


  • User Attivo

    Ciao, sono contento che tu abbia quasi risolto.
    Un consiglio, usa echo al posto di print.

    Per cancellare un prodotto, ad esempio il n.5 devi:

    $_SESSION['carrello'][5]=array();

    inolrte cerca di prevedere sempre un controllo, ad esempio nel ciclo foreach:

    if ($value[nome]!="")

    oppure

    if (strlen($value[nome])>0)

    questo perché se cancelli un prodotto con id intermedio (tipo il 2 su 5 prodotti), con il foreach ti esce comunque una riga vuota in corrispondenza del prodotto id=2.
    Spero di essere stato chiaro!
    :ciauz:


  • User

    Hai ragione,era più semplice di quanto pensassi.

    Grazie per l'aiuto!