Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    grazie ad un aiuto sono riuscito a creare il seguente script:

    codice:
    <?php
    session_start();
    $carrello = array();
    if (isset($_SESSION["carrello"])) {
        $carrello = $_SESSION["carrello"];
    }
    $carrello[count($carrello)] = $_POST["codice_prodotto"];
    
    $_SESSION["carrello"] = $carrello;
    
    header("location:/*pagina prcedente*/");
    
    ?>
    In questo caso mi "cattura" quanto passato tramite post

    Ma poi come faccio sommare questo contenuto con il successivo?

    perchè se nella pagina precedente faccio:
    codice:
    <?php
    session_start();
    $_SESSION["carrello"] = $carrello;
    print_r ($carrello);
    ?>
    visualizzo sempre e solo Array ( [0] => prodotto1 ) oppure Array ( [0] => prodotto2 ) e così viam ma i precedenti spariscono? se no come faccio a visualizzarli tutti (magari sommarli)


    grazie tante

  2. #12
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    30
    Originariamente inviato da yusizu
    grazie ad un aiuto sono riuscito a creare il seguente script:

    codice:
    <?php
    session_start();
    $carrello = array();
    if (isset($_SESSION["carrello"])) {
        $carrello = $_SESSION["carrello"];
    }
    $carrello[count($carrello)] = $_POST["codice_prodotto"];
    
    $_SESSION["carrello"] = $carrello;
    
    header("location:/*pagina prcedente*/");
    
    ?>
    In questo caso mi "cattura" quanto passato tramite post

    Ma poi come faccio sommare questo contenuto con il successivo?

    perchè se nella pagina precedente faccio:
    codice:
    <?php
    session_start();
    $_SESSION["carrello"] = $carrello;
    print_r ($carrello);
    ?>
    visualizzo sempre e solo Array ( [0] => prodotto1 ) oppure Array ( [0] => prodotto2 ) e così viam ma i precedenti spariscono? se no come faccio a visualizzarli tutti (magari sommarli)


    grazie tante
    Uhm.. hai fatto una cosa un po' complicata.
    Se ho capito bene, e facendo il print_r ti mostra solo array [0], è solo perchè non stai allocando i valori in maniera corretta. Insomma li stai riscrivendo, anche se non capisco perchè; teoricamente il tuo script mi sembra funzionante...
    comunque, anzichè
    codice:
    $carrello[count($carrello)] = $_POST["codice_prodotto"];
    sarebbe meglio mettere
    codice:
    $carrello[] = $_POST["codice_prodotto"];
    Così dovrebbe andare

  3. #13
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    no, non va è esattamente come prima

    ma possibile che non ci sia un modo per richiamare TUTTI i dati contenuti nella variabile?

    visualizzo sempre e solo l'ultima.

  4. #14
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    30
    ehm... XD
    l'errore sta qui:
    codice:
    session_start();
    #la parte seguente è necessaria, ma mancante
    session_name('nome_sessione');
    mi era proprio sfuggito
    Non sono comunque sicuro sulla logica dell'algoritmo... se uno vuole inserire più di un prodotto? O se si duplica? O.o Magari è meglio fare qualche controllo...
    Comunque, aggiungendo session_name funge sicuro

  5. #15
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    ...appunto è proprio quello che sto cercando di fare!
    se un utente mi passa per due volte lo stesso prodotto devo stampare a video le due diverse variabili di sessioni.

    così come se un utente mi posta "un'altro" prodotto devo poter stampare le due sessioni vecchie piùquest'ultime!


  6. #16
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    30
    eh, ma facendo così te le mostra, solo che ad esempio una sarà in '0', una in '18', dunque non le sommerà.
    Al limite puoi far si che $_SESSION['carrello'] sia un array multidimensionale.
    tipo:
    codice:
    $_SESSION['carrello'] = array('item_id' => $codice_prodotto, 'item_number' => $numero_prodotti);
    Poi, ogni volta che invii un dato con post, effettui un controllo nell'array (tramite una ciclazione) e se trovi che il codice prodotto è già allocato, incrementi item_number.
    Spero di essermi spiegato

    P.s.: Forse alla fine il DB era la soluzione migliore

  7. #17
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    nn so tu ma io visualizzo sempre:
    Array ( [0] => prodotto1 )

    per quanto riguarda la soluzione dell'array multidimensionale io non ho bisogno che mi sommi le sessioni bensì che mistampi una roba del genere:

    sessione1> codice1 prezzo1
    sessione2> codice1 prezzo1
    sessione3> codice2 prezzo2
    sessione>4 codice3 prezzo3

    e così via in modo da poterme gestire singolarmente, magari eliminarne qualcuna o modificarla.

    Per il db ci sto pensando ma, poi non saprei come richiamare l'inserimento di questo o quell'utente, anche l'ip è da scartare, visti i tanti ip dinamici, senza considerare le reti con ip fisso.

    Spero riusca a concludere qualcosa grazie alla tua enorme pazienza! Grazie

  8. #18
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    30
    Originariamente inviato da yusizu
    nn so tu ma io visualizzo sempre:
    Array ( [0] => prodotto1 )

    per quanto riguarda la soluzione dell'array multidimensionale io non ho bisogno che mi sommi le sessioni bensì che mistampi una roba del genere:

    sessione1> codice1 prezzo1
    sessione2> codice1 prezzo1
    sessione3> codice2 prezzo2
    sessione>4 codice3 prezzo3

    e così via in modo da poterme gestire singolarmente, magari eliminarne qualcuna o modificarla.

    Per il db ci sto pensando ma, poi non saprei come richiamare l'inserimento di questo o quell'utente, anche l'ip è da scartare, visti i tanti ip dinamici, senza considerare le reti con ip fisso.

    Spero riusca a concludere qualcosa grazie alla tua enorme pazienza! Grazie
    Prego, nessun problema
    Capito.
    Però per questo non puoi usare $_SESSION.
    infatti $_SESSION salva i dati dell'utente e li rende, come dire, visibili? utilizzabili? solo per la sua sessione. Dunque tu, amministratore, non potresti recuperare il codice di un altra sessione a meno che non lo salvi da qualche parte
    Di conseguenza, forse, dovresti continuare con la procedura di prima per creare il carrello, dopodichè per vedere lo stato dell'ordine come admin (e dunque vedere se sessione1 ha ordinato prodotto1 ecc...), dovresti provvedere a salvarlo da qualche parte, su un DB o anche solo su un file protetto con htaccess. Magari visualizzi il carrello e poi fai 'invia ordine'. Insomma, dipende molto da quello che vuoi fare precisamente
    Per il codice di prima... non so perchè ti mostra array 0... ti copio quello che ho usato io
    codice:
    session_start();
    session_name('nome_sessione');
    $carrello = array();
    if (isSet($_SESSION['carrello'])) {
        $carrello = $_SESSION['carrello'];
    }
    if (isSet($_POST['codice_prodotto']) && !empty($_POST['codice_prodotto'])) {
        $carrello[] = $_POST['codice_prodotto'];
    }
    $_SESSION['carrello'] = $carrello;
    
    print_r($_SESSION['carrello']); # ad ogni aggiornamento mostrerà il carrello
    Se non funziona neanche così, non so cosa dirti O.o, da me in locale gira perfetto come un orologio svizzero

  9. #19
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    scusami tanto se ti scoccio ma io continuo a vedere
    Array ( [0] => prodotto2 ) oppure
    Array ( [0] => sprodotto1 ) .

    Comunque a parte questo quando ho scritto che avrei voluto in seguito gestire (eliminare, modificare) le variabili, non intendevo io (amministartore) ma l'utente stesso aggiungendo di fianco alle variabili creati dei pulsanti (modifica quantita>>quindi modifica valore sessione) oppure elimina (elimina quella sessione) ovviamente solo quando riuscirò a stampare una sotto l'altra tutte le variabili che l'utente ha creato.

    Poi solo successivamente faccio confermare l'invio con la registrazione nel db>>allora li certo che intervengo io.

    Non so se ha senso quanto ho scritto ma è la soluzione forse più semplice che ho trovato!

  10. #20
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    30
    Ah, sì.
    In locale, con quel codice, funzionava perfettamente. Poi provandolo altrove, mi sono accorto che non girava.
    adesso, speriamo, facendo
    codice:
    session_start();
    session_name('nome_sessione');
    #ho usato $_GET per provare, sicuramente funziona anche con POST 
    if (isSet($_GET['codice_prodotto'])) {
       $_SESSION['carrello'][] = $_GET['codice_prodotto'];
    }
    print_r($_SESSION['carrello']);
    sono riuscito a farlo funzionare
    fammi sapere se và anche da te

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.