Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10

    Passare piu valori ad una sessione

    Buongiorno a tutti

    ho un problema: sto facendo un sito internet che permetta l'ordine di prodotti di abbigliamento online.

    I prodotti sono visibili da tutti, ma solo in seguito al login è possibile accedere ad una pagina riservata con una lista di tutti i prodotti; ad ogni prodotto corrisponde un bottone AGGIUNGI che "dovrebbe" aggiungere il prodotto selezionato ad un carrello.

    Il problema è che il vettore in cui dovrebbe essere salvato l'id del prodotto, continua a sovrascrivere i dati passati, per cui ogni volta che vado a vedere il carrello, mi viene stampato solo l'ultimo id aggiunto.

    Per maggiore chiarezza vi posto il codice php:

    N.B.: la parte che mi da problemi è evidenziata in rosso

    <?
    session_start();//Apriamo la sessione
    echo "Sei connesso come: " .$_SESSION['username']. ".";
    ?>

    <?
    include("creds.php");

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $modello = $_REQUEST["modello"];
    $taglia = $_REQUEST["taglia"];
    $colore = $_REQUEST["colore"];
    $quantita = $_REQUEST["quantita"];

    $query = "SELECT CodProdotto FROM prodotto WHERE Modello='$modello' AND Taglia='$taglia' AND Colore='$colore'";
    $result = mysql_query($query);
    $arr = mysql_fetch_row($result);
    $codprodotto = $arr[0]; // fino a questo momento, php si è connesso a mysql e ha ricavato l'id del prodotto


    $j=1;
    for ($i=0; $i<$j; $i++)
    { $j=$j+1; $vettore[$i]=$codprodotto;
    }

    $_SESSION['carrello'][]=$vettore;

    $numero=count($vettore);
    echo $numero;


    mysql_close($db);
    ?>

    spero di essere stato chiaro..

  2. #2
    Non usare lo short open tag.
    Controlla i valori di ritorno delle varie funzioni prima di utilizzarli.
    Controlla l'esistenza degli indici degli array prima di accedervi.
    Verifica che il tipo sia array prima di aggiungerci un elemento.
    Il ciclo for() non serve a niente.

    Codice PHP:
    $_SESSION['carrello'][] = $codprodotto;
    print_r($_SESSION['carrello']); 

  3. #3
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Il ciclo FOR e' eterno

  4. #4
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10
    Originariamente inviato da filippo.toso
    Non usare lo short open tag.
    Controlla i valori di ritorno delle varie funzioni prima di utilizzarli.
    Controlla l'esistenza degli indici degli array prima di accedervi.
    Verifica che il tipo sia array prima di aggiungerci un elemento.
    Il ciclo for() non serve a niente.

    Codice PHP:
    $_SESSION['carrello'][] = $codprodotto;
    print_r($_SESSION['carrello']); 
    Perfetto, grazie mille..ora il vettore si riempie..
    due domande:
    1) stavo notando che se chiudo la pagina e la riapro, il vettore non si svuota (non ho effettuato nessun logout) : per quanto tempo il vettore memorizza i dati?
    2) come faccio ora a fare il percorso inverso (ovvero, dai dati presenti nel vettore, come faccio a riprendere il nome del prodotto? io ho pensato al ciclo for che mi prende i risultati e mi effettua la query su mysql, ma non saprei come contare la lunghezza del vettore [o meglio, la lunghezza di $_SESSION] )

    grazie della disponibilità


    edit: anche se effettuo l'accesso con un altro nickname, il vettore continua ad aggiungere prodotti selezionati da altri utenti; come fare per svuotare il vettore alla fine di ogni sessione?!

  5. #5
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10
    Originariamente inviato da Grith
    [...]
    1) stavo notando che se chiudo la pagina e la riapro, il vettore non si svuota (non ho effettuato nessun logout) : per quanto tempo il vettore memorizza i dati?
    [...]

    edit: anche se effettuo l'accesso con un altro nickname, il vettore continua ad aggiungere prodotti selezionati da altri utenti; come fare per svuotare il vettore alla fine di ogni sessione?!
    per quanto riguarda il logout, il pulsante funziona..
    non capisco comunque perchè chiudendo semplicemente la pagina mi restano memorizzati i codici prodotto nell'array (comunque, ripeto, effettuando il logout non c'è problema)..vorrei solo sapere se è normale che si comporti così..

    per quanto riguarda la query, non sono riuscito ancora a risolvere.. (non riesco a calcolare il numero di elementi salvati in $_SESSION['carrello'] )

  6. #6
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10
    RISOLTO. GRAZIE A CHI HA RISPOSTO.

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.