Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Registrare variabili

  1. #1

    Registrare variabili

    Sto sviluppando una pagina che cliccando su un pulsante (form) dia in un riquadro casualmente 4 dei nomi totali (21, anche se io ne ho messi solo 4).

    Codice PHP:
    <html> 
    <head>     
    <title>Estrazioni</title>         
    <link rel="stylesheet" type="text/css" href="estrazioni.css" />         
    <style type="text/css">     
    </style> 
    </head> 
    <body>     
    <p align="right">     
    <?php echo date("H:i - d F Y"?>     
    </p>     


             
    <div id="div2">     
    <fieldset><legend>Gli Estratti sono:</legend>     
    <?php              
    $nome 
    = array('nome1''nome2''nome3''nome4'); 
    $ks array_rand($nome4); 
    print 
    $nome[$ks[0]]; // nome n.1      
    echo '
    '
    ;         
    print 
    $nome[$ks[1]]; // nome n.2     
    echo '
    '
    ;         
    print 
    $nome[$ks[2]]; // nome n.3     
    echo '
    '
    ;     
    print 
    $nome[$ks[3]]; // nome n.4     
    ?> 
    </p>         
    </fieldset>
    </body>
    </html>
    Ma ora vorrei aggiungere un'ulteriore cosa, cioè che quando quei quattro nomi vengono visualizzati nel riquadro vengano registrati e disposti sotto al riquadro, quindi ogni volta che si aggiorna la pagina quei nomi che sono usciti restano registrati.
    Qualche idea di come fare?

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Codice PHP:
    <?php
    session_start
    ();

    $nome = array('nome1''nome2''nome3''nome4');

    if(!isset(
    $_SESSION['precedenti']))
        
    $_SESSION['precedenti']=array();

    $_SESSION['precedenti'][] =  array_rand($nome4);

    ?>
    <html> 
        <head>     
            <title>Estrazioni</title>         
            <link rel="stylesheet" type="text/css" href="estrazioni.css" />         
            <style type="text/css">     
            </style> 
        </head> 
        <body>     
            <p align="right">     
                <?php echo date("H:i - d F Y"?>     
            </p>     
            

             
            <div id="div2">     
                <fieldset><legend>Gli Estratti sono:</legend>     
                    <?php
                        $n 
    =  count($_SESSION['precedenti'])-1;
                        for(
    $i=$n$i>=0$i--){
                            foreach (
    $_SESSION['precedenti'][$i] as $value
                                echo 
    "{$nome[$value]} 
    "
    ;                       
                            if(
    $i==$n)
                                echo 
    "<hr>";
                        }
                    
    ?> 
                    </p>         
                </fieldset>
        </body>
    </html>
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  3. #3
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Codice PHP:
    session_start();

    if (!isset(
    $_SESSION['nomi']))
    {
        
    $nome = array('nome1''nome2''nome3''nome4''nome5''nome6');  
        
    $ks array_rand($nome4);
        
    $_SESSION['nomi'] = array(
            
    => $nome[$ks[0]],
            
    => $nome[$ks[1]],
            
    => $nome[$ks[2]],
            
    => $nome[$ks[3]]
        );
    }

    foreach (
    $_SESSION['nomi'] as $value)
    {
        echo 
    $value '
    '
    ;

    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Originariamente inviato da Grino
    Codice PHP:
    <?php
    session_start
    ();

    $nome = array('nome1''nome2''nome3''nome4');

    if(!isset(
    $_SESSION['precedenti']))
        
    $_SESSION['precedenti']=array();

    $_SESSION['precedenti'][] =  array_rand($nome4);

    ?>
    <html> 
        <head>     
            <title>Estrazioni</title>         
            <link rel="stylesheet" type="text/css" href="estrazioni.css" />         
            <style type="text/css">     
            </style> 
        </head> 
        <body>     
            <p align="right">     
                <?php echo date("H:i - d F Y"?>     
            </p>     
            

             
            <div id="div2">     
                <fieldset><legend>Gli Estratti sono:</legend>     
                    <?php
                        $n 
    =  count($_SESSION['precedenti'])-1;
                        for(
    $i=$n$i>=0$i--){
                            foreach (
    $_SESSION['precedenti'][$i] as $value
                                echo 
    "{$nome[$value]} 
    "
    ;                       
                            if(
    $i==$n)
                                echo 
    "<hr>";
                        }
                    
    ?> 
                    </p>         
                </fieldset>
        </body>
    </html>
    Non è meglio se salva in sessione direttamente i nomi?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Originariamente inviato da Secta
    Codice PHP:
    session_start();

    if (!isset(
    $_SESSION['nomi']))
    {
        
    $nome = array('nome1''nome2''nome3''nome4''nome5''nome6');  
        
    $ks array_rand($nome4);
        
    $_SESSION['nomi'] = array(
            
    => $nome[$ks[0]],
            
    => $nome[$ks[1]],
            
    => $nome[$ks[2]],
            
    => $nome[$ks[3]]
        );
    }

    foreach (
    $_SESSION['nomi'] as $value)
    {
        echo 
    $value '
    '
    ;

    Questo è sbagliato perchè non trattiene le estrazioni, estrae i dati una sola volta e aggiornando la pagina ripresenta sempre lo stesso quartetto.

    Originariamente inviato da Secta
    Non è meglio se salva in sessione direttamente i nomi?
    Questo è l'eterno dilemma tra occupazione di memoria e prestazioni del sistema!
    Dipende. Il dato occupa solitamente più memoria di un riferimento, al costo di un overhead rispetto ai tempi d'esecuzione. Stiamo comunque parlando della lettura in più di variabile, ovverosia di nulla.

    L'unico vero motivo che potrebbe indurmi a memorizzare il dato, invece di un indice, è la necessità di storicizzare l'estrazione al fine di prevenire l'influenza susseguente la variazione del contenuto della sorgente dati (l'array $nome). Ma questi sono requisiti di progetto non specificati nel post iniziale.

    Spero di essere riuscito a spiegarmi.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

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.