Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    verificare se una sessione è avviata o no

    Salve a tutti! Dopo il forum di Java eccomi anche su PHP a dimostrarvi la mia ignoranza e la mia voglia di imparare!

    Ho creato uno script per la registrazione di utenti su un database e successivamente una di login. Ora la mia domanda è questa:
    Ho creato una "homepage" composta da due div posti uno in alto e uno nel resto della pagine che tramite il comando include richiamano una pagina php ciascuno (una specie di suddivisione in 2 frame). La pagina che andrà nella parte centrale dev'essere praticamente la stessa, o meglio per ora non mi pongo neanche il problema che invece è nel div che occupa la parte superiore della pagina. Se non si è ancora effettuato il login dev'essere visualizzata la pagina main_login.php che contiene i campi per fare l'accesso, altrimenti dev'essere visualizzata la pagina already_connected.php che visualizza "Ciao $nome_utente". Le due pagine php suddette sono già belle e pronte. Premettendo che avvio la sessione con session_start() e non session_register() mi manca la condizione da mettere nell'if per visualizzare una o l'altra pagina. Ho provato a mettere una variabile booleana $isLogged nell'array $_SESSION ma ovviamente se la sessione non è ancora stata avviata l'array non esiste neanche! Ho provato anche a negare la session_id ossia if(!session_id()){...} però non funziona. Ho provato con il nome sessione vuoto if(session_name("")){...} però ancora nulla. Non so proprio come fare! Vi prego aiutatemi!!
    la parte di codice sarebbe praticamente questa
    Codice PHP:
    <?php
        
    if(CONDIZIONE_MANCANTE){
            include(
    'main_login.php'); 
        }
        else{
            include(
    'already_connected.php');        
        }
    ?>
    Grazie mille
    Giovanni

  2. #2
    Codice PHP:
    <?php
        
    if($_SESSION['nome']==''){
            include(
    'main_login.php');
        }
        else{
            include(
    'already_connected.php');        
        }
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    innanzitutto grazie mille x la risposta tempestiva!!

    poi al posto di 'nome' che devo mettere? non so che nome abbia la mia sessione!
    Giovanni

  4. #4
    non devi mettere il nome della sessione, ma il nome della variabile di sessione...
    $_SESSION è un array globale, e ci puoi salvare dentro tutti i dati che credi per ogni sessione... Quello che fai con il codice di Samleo è controllare che la variabile $_SESSION['nome'] sia impostata (diversa da '').
    Tu piazzaci - che so - un id o un nick o quello che vuoi e poi fai il controllo di quello ad ogni pagina!
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    si ma se mi deve mostrare la pagina di login vuol dire che ancora non è stata avviata alcuna sessione per cui l'array $_SESSION non esiste ancora!
    Giovanni

  6. #6
    allora la condizione risulterà false ed entrerà a includere main_login.php, appunto.
    Se l'array non esiste allora $_SESSION['qualsiasicosa'] non è impostato.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    si si infatti così ho già provato e mi dà
    Undefined variable: _SESSION
    nella riga dove c'è il codice
    Codice PHP:
    if($_SESSION['userid']==''){ 
    Giovanni

  8. #8
    se vuoi fare una cosa alternativa puoi provare con
    Codice PHP:
    if(isset($_SESSION))
    {
    fai questo

    Il php offre un sacco di possibilità, vedi tu quale ti piace di più/è più elegante/è più corretta, ecc ecc
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    ho appena provato. Ho fatto così
    Codice PHP:
    <?php
        
    if(!isset($_SESSION)){
            include(
    'main_login.php');
        }
        else{
            include(
    'already_connected.php');        
        }
    ?>
    Dovrebbe essere giusto, no? Però non funziona... mi mette in alto sempre la pagina di login...
    Per renderla più semplice ho temporaneamente messo un echo. Se entra nel primo if stampa NON SEI LOGGATO altrimenti stampa SEI LOGGATO e indovina un pò? Mi stampa sempre la prima...

    PERCHEEEE'???? :berto:
    Giovanni

  10. #10
    aspetta mi sta venendo un dubbio
    anzi due
    1. Hai messo qualcosa in qualche variabile di $_SESSION?
    2. Hai aperto la sessione tramite session_start() prima di fare i controlli?!


    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

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.