Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Sistema di notifiche con sessioni

    Salve, ho creato un sistema di notifiche basato sulle sessioni utilizzando 2 funzioni:

    setNotification(): che salva una variabile di sessione con il numero del messaggio di notifica
    getNotification(): che recupera il messaggio di notidica da un file ini e lo stampa a schermo

    Ecco il codice:
    Codice PHP:
        //Stampa a schermo le notifiche
        
    public function getNotification(){
            
    //controllo se la variabile è valorizzata
            
    if (!empty($_SESSION['notifyMessage'])){    
                
    //Apro il file e lo salvo in un array
                
    $lines file(dirname(__FILE__) . '/lang/'.$this->getConfig('siteLang').'.ini');
                
    //Salvo il tipo di messaggio ed il testo in un array passando 
                //come parametro il separatore # ed il numero della riga 
                
    $dat explode("#"$lines[$_SESSION['notifyMessage']]);
                
                
    $type=trim($dat[2]);
                
    $message=$dat[1];
                
    //Determino il titolo della finestra di notificazione
                
    switch($type){
                    case 
    "info":
                    
    $title "Informazione!";
                    break;

                    case 
    "error":
                    
    $title "Errore: ";
                    break;
                
                    case 
    "success":
                    
    $title "Ok: ";
                    break;
                
                    case 
    "warning":
                    
    $title "Warning!";
                    break;
                }
                
    //Creo il codice HTML con la notifica
                
    $notifyMessage '
                <div class="message '
    .$type.'">
                    


                        [b]'
    .$title.'[/b]
                        '
    .$message.'
                    </p>
                </div>
                '
    ;
                
    //Stampo a schermo il messaggio
                
    echo $notifyMessage;
                
    //Elimino la variabile di sessione
                
    unset($_SESSION['notifyMessage']);
            }
            return;
        }
        
        
    //setta la variabile di sessione con il numero di notifica
        
    public function setNotification($num){
            
    $_SESSION['notifyMessage']=$num;
            return;
        } 
    Il file IT.ini invece è fatto in questo modo

    1#messaggio#error
    2#secondo messaggio#success
    ecc ecc ecc..

    Il problema è che quando richiamo la funzione getNotification() non mi stampa a schermo nulla.
    All'inizio della pagina ho scritto session_start()

    Quale può essere il problema?

  2. #2
    Ho risolto Il problema era molto più semplice di quello che sembrava:

    dato che il primo messaggio di notifica l'ho settato in questo modo:
    setNotification(0);

    la variabile $_SESSION['notifyMessage'] era uguale a zero e quindi la funzione empty (inserita nel controllo if) restituiva FALSE.

    Ho risolto modificando la riga incriminata in questo modo:
    Codice PHP:
    if (isset($_SESSION['notifyMessage']) && ($_SESSION['notifyMessage']!="")){ 
    Spero almeno che possa essere utile a qualcuno!

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.