Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2016
    residenza
    Torino
    Messaggi
    4

    sessioni e refresh di pagina

    Ciao a tutti,
    sono un neofita di PHP e sto cercando di capire come funzionano le sessioni. A titolo di prova ho inserito questo codice:
    codice:
    <?php
    
    
    session_start();
    
    
    $_SESSION['conteggio'] = 0;
    
    
    $conteggio++;
    
    
    $msg = "<p>Sei stato qui " . $conteggio . " volte.</p>";
    
    
    <html>
    <head>
        <title>Prova sessione</title>
    </head>
        
    <body>
        
        <?php echo $msg; ?>
        
        </body>    
    </html>
    
    
    
    ?>

    Il problema è che al refresh di pagina il valore stampato non cambia (indica sempre 1).
    Ho provato a inserire $_SESSION = array(); session_destroy(); dopo echo ma non funziona...Come mai? Che cosa manca?

    Grazie!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ogni volta che accedi alla pagina viene eseguita l'istruzione

    $_SESSION['conteggio'] = 0;

    che azzera ogni volta il conteggio, quindi chiaramente hai sempre 1

    Codice PHP:
    session_start();

    if( ! isset(
    $_SESSION['conteggio']) )
    {
        
    $_SESSION['conteggio']  = 0;
    }

    $_SESSION['conteggio']++;

    $msg "<p>Sei stato qui " $_SESSION['conteggio'] . " volte.</p>";


    // ecc... 

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2016
    residenza
    Torino
    Messaggi
    4
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ogni volta che accedi alla pagina viene eseguita l'istruzione

    $_SESSION['conteggio'] = 0;

    che azzera ogni volta il conteggio, quindi chiaramente hai sempre 1

    Codice PHP:
    session_start();

    if( ! isset(
    $_SESSION['conteggio']) )
    {
        
    $_SESSION['conteggio']  = 0;
    }

    $_SESSION['conteggio']++;

    $msg "<p>Sei stato qui " $_SESSION['conteggio'] . " volte.</p>";


    // ecc... 
    E' vero, adesso è ok...grazie mille!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2016
    residenza
    Torino
    Messaggi
    4

    sessioni e refresh di pagina

    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ogni volta che accedi alla pagina viene eseguita l'istruzione

    $_SESSION['conteggio'] = 0;

    che azzera ogni volta il conteggio, quindi chiaramente hai sempre 1

    Codice PHP:
    session_start();

    if( ! isset(
    $_SESSION['conteggio']) )
    {
        
    $_SESSION['conteggio']  = 0;
    }

    $_SESSION['conteggio']++;

    $msg "<p>Sei stato qui " $_SESSION['conteggio'] . " volte.</p>";


    // ecc... 
    E' vero, adesso è ok...grazie mille!

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Altra cosa che mi sono dimenticato di scriverti, andavo di fretta, dopo aver inizializzato la variabile di sessione $_SESSION['conteggio'] usavi poi la variabile $conteggio per stampare il valore, non funziona così perché $conteggio non è in sessione e ad ogni refresh della pagina è a tutti gli effetti una nuova variabile.
    Devi usare $_SESSION come ho fatto io, oppure se non ti piace e vuoi usare una variabile semplice, dopo l'if devi mettere

    $conteggio = $_SESSION['conteggio'];

    $conteggio++;

    echo ...... $conteggio ....

    che però è uno spreco di memoria visto che in realtà non serve.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2016
    residenza
    Torino
    Messaggi
    4

    sessioni e refresh di pagina

    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Altra cosa che mi sono dimenticato di scriverti, andavo di fretta, dopo aver inizializzato la variabile di sessione $_SESSION['conteggio'] usavi poi la variabile $conteggio per stampare il valore, non funziona così perché $conteggio non è in sessione e ad ogni refresh della pagina è a tutti gli effetti una nuova variabile.
    Devi usare $_SESSION come ho fatto io, oppure se non ti piace e vuoi usare una variabile semplice, dopo l'if devi mettere

    $conteggio = $_SESSION['conteggio'];

    $conteggio++;

    echo ...... $conteggio ....

    che però è uno spreco di memoria visto che in realtà non serve.
    Ti ringrazio per la risposta, ho capito il problema...In effetti non avevo fatto caso a $conteggio come a una nuova variabile. Sulle sessioni ho ancora diverse cosette da capire.
    Grazie!

Tag per questa discussione

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.