Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di cendo
    Registrato dal
    Aug 2007
    Messaggi
    49

    controllare se la sessione è già attiva

    ciao a tutti,
    esiste una funzione che mi permetta di capire se ho già effettuato un "session_start"?

    includendo più file php in una pagina, a volte mi capita che venga replicato il comando "session_start()".

    Vorrei sapere se è possibile scrivere un codice di questo tipo:

    Codice PHP:
    if(sessione non partita)
         
    session_start(); 
    grazie

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    http://fr.php.net/manual/en/function.session-id.php

    la funzione session_id ti restituisce l'id di sessione, se non c'è una sessione attiva l'id sarà una stringa vuota.

    Permettimi però di dirti che se non sai se la sessione è attiva o meno vuol dire che non hai organizzato bene i tuoi files e che hai sicuramente del disordine nel codice :-)

    ciao

  3. #3
    Utente di HTML.it L'avatar di cendo
    Registrato dal
    Aug 2007
    Messaggi
    49
    Originariamente inviato da gianiaz
    Permettimi però di dirti che se non sai se la sessione è attiva o meno vuol dire che non hai organizzato bene i tuoi files e che hai sicuramente del disordine nel codice :-)
    Questo è molto probabile :-P

    Ti spiego la situazione così magari puoi darmi qualche dritta:
    ho creato un sito che prevede alcune pagine protette.

    Per proteggere le pagine ho creato un file "proteggi_pagina.php" che vado ad includere all'inizio di ogni pagina riservata. All'interno di questo codice è previsto un "session_start()".

    Mi è capitato poco fa di dover proteggere una pagina e ho come al solito incluso il file di cui ti ho appena parlato. La pagina però conteneva già un "session_start()" e ho ricevuto un messaggio di errore.

    Dato che potrei comunque avere bisogno di rendere private anche alcune altre pagine che sono già state scritte, mi sembrava una soluzione decente mettere semplicemente un controllo come quello che ti ho indicato prima.

    Cosa mi consiglieresti?

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    guarda, io metterei un session_start nella index e lo toglierei da tutte le altre parti, cosi tagli la testa al toro :-)

    Avviare la sessione anche se non ti serve non porta un carico eccessivo al server.

    ciao :-)

  5. #5
    Utente di HTML.it L'avatar di cendo
    Registrato dal
    Aug 2007
    Messaggi
    49
    quindi toglieresti "session_start()" dal file "proteggi_pagina.php" e mi consiglieresti di metterlo in tutte le pagine indipendentemente dalla sua utilità?

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    dipende dall'architettura del tuo sito, io in genere creo una sola index che importa i vari moduli, quindi il session_start lo metto solo nella index.

    Se la tua applicazione non è fatta in questo modo allora devi valutare se ti conviene o meno.


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.