Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: dati in sessione

  1. #1

    dati in sessione

    Salve a tutti.....
    premetto che uso il php da qualche anno ma, purtroppo, mi mancano le basi.... e si vede

    cmq.... il mio problema è questo......

    ho un DB da cui estrapolo i dati (eventi con date e descrizioni)
    in un form faccio un ciclo e li elenco in modo che l'utente finale possa scegliere di iscriversi a uno o più eventi e prenotare uno o più posti.......
    quando faccio l'invio memorizzo correttamente i dati dell'utente in un DB e mando le email di conferma....... ed ecco il problema..... ovviamente nella pagina dell'invio mi memorizza i dati dell'ultimo record e non tutti i record scelti dall'utente...... pensavo di usare le sessioni per memorizzare i dati e poi fare un explode..... ma mi è sorto un dubbio...... una sessione può memorizzare un ciclo di dati?!?!

    es.
    se l'utente seleziona l'evento 1, 3 e 5 (da form con checkbox e campo text per i posti)
    dovrei poter stampare:

    evento 1 - descrizione - posti 2
    evento 3 - descrizione - posti 1
    evento 5 - descrizione - posti 2

    mi sono un po' arenata

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Se per ciclo di dati intendi un array, la risposta è si, ti consiglio comunque di salvare l'array in forma serializzata utilizzando la funzione serialize.

    In realtà comunque eviterei le sessioni però non sapendo bene come sia gestito il codice non saprei come meglio indirizzarti.

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non mi è chiarissimo ciò che ti serve, comunque in sessione puoi metterci quello che vuoi.
    Ad esempio puoi creare una variabile $_SESSION['eventi'] ed aggiungere a questa gli eventi man mano che ti serve con
    $_SESSION['eventi'][] = $il_nuovo_evento;

    Poi per stampare la lista fai
    Codice PHP:
    foreach($_SESSION['eventi'] as $evento)
    {
       echo 
    $evento."
    "
    //se $il_nuovo_evento era una stringa
       
    echo $evento['indice1']." - ".$evento['indice2']." - ".$evento['indice3']."
    "
    //se $il_nuovo_evento era un array

    ovviamente invece di indice1, indice2... devi metterci i valori giusti.

  4. #4
    ok, posto un po' di codice...

    pagina con elenco eventi:
    Codice PHP:
    <?php
    @session_start();

    // Includo la connessione al database
    @require('configLoc.php');


    $query_show "SELECT * FROM codici AS codici JOIN date AS date on codici.IDdata = date.id WHERE codici.id <20 ORDER BY codici.IDdata, codici.ore";
    $show mysql_query($query_show$db) or die(mysql_error());
    $resul mysql_num_rows($show);

    ?>
    elenco eventi



    <form id="show" name="show" method="post" action="invio.php">
    <?php 
        
    if (!empty($resul))
        {
            
    $maxcells 1;
            
    $i 0;
            while (
    $row_show mysql_fetch_assoc($show))
            {                    
                
    $i++;
                    if (
    $i == 1)
                    {
                        if (!empty(
    $row_show['prezzo']))
                        {
                            
    $przUni $row_show['prezzo'];
                            
    $prezzoUni number_format($przUni2',''.')." EURO";
                            }
                        else {
                            
    $prezzoUni "su prenotazione GRATUITO";
                            }
                        echo 
    "<label>\r";
                        echo 
    "<input type=\"checkbox\" name=\"eventi\" value=\"".$row_show['codice']."\" id=\"eventi_".$row_show['codice']."\" />cod. ".$row_show['codice']." - ".$row_show['ore']." - ".$row_show['desc']." - ".$prezzoUni;
                        echo 
    "</label>\r";
                        echo 
    "
    \r"
    ;
                        echo 
    "<input name=\"disp\" id=\"disp\" type=\"text\" class=\"campi\" />";
                        }
                    if (
    $i == $maxcells)
                    {
                        echo 
    "
    \r"
    ;
                        echo 
    "
    "
    ;
                        
    $i 0;
                        }
                    echo 
    "
    \r"
    ;
                    }
        else {
            echo 
    "Sezione in allestimento!";
            }
    ?>
    file invio

    Codice PHP:
    <?php
    @session_start();

    // Includo la connessione al database
    @require('configLoc.php');


    // recuperiamo i dati inviati con il form

    $nome        ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
    $cognome    ltrim(rtrim(strip_tags(stripslashes($_POST['cognome']))));
    $via        ltrim(rtrim(strip_tags(stripslashes($_POST['via']))));
    $citta        ltrim(rtrim(strip_tags(stripslashes($_POST['citta']))));
    $CAP        ltrim(rtrim(strip_tags(stripslashes($_POST['CAP']))));
    $provincia    ltrim(rtrim(strip_tags(stripslashes($_POST['provincia']))));
    $email        ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    $cell        ltrim(rtrim(strip_tags(stripslashes($_POST['cell']))));
    $eventi        ltrim(rtrim(strip_tags(stripslashes($_POST['eventi']))));
    $disp        ltrim(rtrim(strip_tags(stripslashes($_POST['disp']))));


    $Destinatario    "$email";
    $subject "iscrizione";

    $body  "<img src=\"img/logo.png\" width=\"245\" height=\"45\" alt=\"Logo\" />





    <font face='verdana' size='2'>Riepilogo 



    [b]nome:[/b] 
    $nome $cognome


    [b]indirizzo:[/b] 
    $via - $citta $CAP $provincia


    [b]telefono:[/b] 
    $cell


    [b]email:[/b] 
    $email


    [b]codice:[/b] cod. 
    $eventi


    [b]biglietti:[/b] cod. 
    $disp



    </font>"
    ;

    $intestazioni  "MIME-Version: 1.0\r\n";  
    $intestazioni .= "Content-type: text/html; charset=UTF-8\r\n";  

    $intestazioni .= "From: [email]mia@email.it[/email]\r\n";  

    ecc.....
    in pratica nel body della email il codice e il numero di biglietti deve essere stampato con le scelte dell'utente....

    es.
    codice 01 - biglietti 2
    codice 03 - biglietti 1
    ecc...

    con foreach($_SESSION['eventi'] as $evento) lo posso fare?!

    grazie
    Claudia

  5. #5
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Si puoi... $_SESSION tendenzialmente si comporta come ogni altra variabile.

  6. #6
    ok, ci provo.......

    grazie

  7. #7
    scusate, ma non ho capito una cosa.....

    il valore di $dispo
    Codice PHP:
     $_SESSION['eventi'][] = $disp
    lo devo prendere da un campo di testo del form
    Codice PHP:
    <input name=\"disp\" id=\"disp\" type=\"text\" class=\"campi\" /> 
    quindi faccio
    Codice PHP:
    <input name=\"disp\" id=\"disp\" type=\"text\" class=\"campi\" />
    $_SESSION['eventi'][] = $disp
    ma non mi memorizza nessun dato...... dove sbaglio?!

  8. #8
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Sbagli nel fatto che non stai postando i dati, ti serve una form, un pulsante di submit ed il codice per gestire invio e ricezione dei dati:

    http://php.html.it/guide/lezione/266...li-get-e-post/

    http://php.html.it/guide/lezione/266...o-le-sessioni/

  9. #9
    in realtà il submit c'è, ma nn l'ho postato

    cmq... cerco di semplificare con il minimo indispensabile il codice... non riesco a memorizzare i valori....

    Codice PHP:
     @session_start();
     echo 
    "<form action=\"invio3.php\" method=\"post\">";

    $i=0;
    while(
    $i<10)
    {
        echo 
    "cod. 0".$i.

        <input type=\"text\" name=\"disp\">
        

    "
    ;
     
    $_SESSION['dispo'] = $disp;
     
    $i++;
    }

    echo 
    "<input type=\"submit\" name=\"submit\" value=\"invia\">";
    echo 
    "</form>" 
    e questo è il file dove dovrei leggere i valori
    Codice PHP:
    <?php
    @session_start();

    foreach(
    $_SESSION['dispo'] as $evento)
    {
       echo 
    "biglietti ".$evento//se $il_nuovo_evento era una stringa
    }
    $_SESSION['dispo']=array();

    ?>
    mi dispiace essere così dura, i link sono molto interessanti, ma purtroppo ho poco tempo per risolvere questo inghippo.........

  10. #10
    Non è che ti basta semplicemente una roba del genere?

    Codice PHP:
    <?php
    if (!isset($_POST['submit'])) {
        echo 
    "<form action=\"index.php\" method=\"post\">";
        
        
    $i 0;
        while(
    $i 10) {
            echo 
    "cod. 0".$i.
    <input type=\"text\" name=\"disp[]\">
    "
    ;
            
    $i++;
        }
        
        echo 
    "<input type=\"submit\" name=\"submit\" value=\"invia\">";
        echo 
    "</form>";
    } else {
        foreach(
    $_POST['disp'] as $evento) {
            echo 
    "biglietti ".$evento//se $il_nuovo_evento era una stringa
        
    }
    }
    ?>
    Per fare la prova ho messo tutto in un'unica pagina.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.