Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251

    Dov'è l'errore in questo codice?

    Praticamente dove la sessione non è registrata, non fa quello che dovrebbe... praticamente non passa $l
    Codice PHP:
    <?
    if(!isset($_SESSION['l'])) { //se la sessione non c'è
                                
    if(isset($_COOKIE['language'])) { //se il cookie già c'è
    $l=$_COOKIE['language'];}
    else     { 
    //se il cookie non c'è
    setcookie('language','ita'); //imposto il cookie col valore Italiano
    $l='ita'//Imposto il valore di default
        

    session_start();
    session_register('l'); //in ogni caso faccio partire la sessione registrando la lingua
                            
    }
    else 
    //se invece la sessione già esiste
    session_start();

    ?>

  2. #2
    $_SESSION e' disponibile solo dopo session_start, non prima.

    Se poi usi $_SESSION evita di usare session_register().

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Quindi per controllare che una sessione sia stata già iniziata che uso?

  4. #4
    [supersaibal]Originariamente inviato da pappolo
    Quindi per controllare che una sessione sia stata già iniziata che uso? [/supersaibal]
    <?php
    session_start();
    if(!isset($_SESSION['l'])) { //se la sessione non c'è
    ......


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Grazie mille

  6. #6
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    [supersaibal]Originariamente inviato da piero.mac

    Se poi usi $_SESSION evita di usare session_register(). [/supersaibal]
    E come faccio a inizializzare la variabile da tracciare nella sessione?

    L'array $_SESSION che si forma dalla chiamata di session_start non si popola con le variabile che passo tramite il sessione_register?




    :master:

  7. #7
    [supersaibal]Originariamente inviato da pappolo
    E come faccio a inizializzare la variabile da tracciare nella sessione?

    L'array $_SESSION che si forma dalla chiamata di session_start non si popola con le variabile che passo tramite il sessione_register?
    :master: [/supersaibal]
    Ma quando mai....

    $_SESSION['pippo'] = 'pallino';

    Si usa allo stesso modo delle altre variabili superglobali. La differenza e' che questa viene memorizzata nel relativo file di sessione. Quindi gli step sono:

    session_start(); apre una sessione e relativo file vuoto.
    $_SESSION['pippo'] = 'pallino';

    ora $_SESSION['pippo'] viene registrato nel file di sessione.

    Altra pagina:
    session_start(); viene cercato il cookie di sessione posato prima nella cache del browser (non su disco)

    Se il cookie di sessione rende un valore presente e valido nella lista dei file di sessione, session_start lo recupera con tutto il suo contenuto e quindi anche $_SESSION['pippo'].

    Se il cookie non ha corripondenza con il nome del file, oppure la sessione lato server e' scaduta, viene aperta una nuova sessione e relativo file di sessione che risultera' ovviamente vuoto.

    Dimentica l'esistenza di session_register.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Sei stato chiarissimo

    Grazie mille


  9. #9
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Quindi alla fine il controllo sull'esistenza della sessione, o del cookie e relativa inizializzazione esce così:
    Codice PHP:
    <?
    session_start
    ();
    if(!isset(
    $_SESSION['l'])) { //se la sessione non c'è
        
    if(isset($_COOKIE['language'])) { //se il cookie già c'è
               
    $l=$_COOKIE['language'];
               
    $_SESSION['l'] = $l;} //registro la sessione col valore del cookie
    else     { //se manco il cookie c'è
            
    setcookie('language','ita'); //imposto il cookie col valore Italiano
            
    $l='ita';} //Imposto il valore di default

    $_SESSION['l'] = $l//In ogni caso inizializzo l'array $_SESSION
                            
    }


    ?>
    E questo lo includo in ogni pagina, no?

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.