Visualizzazione dei risultati da 1 a 7 su 7

Discussione: gestione sessioni

Hybrid View

  1. #1

    gestione sessioni

    Ciao a tutti!
    Nei seguenti 4 punti spiego come io gestirei le sessioni in PHP.
    Subito dopo troverete delle domande a cui non riesco a dare risposta!
    Sapreste Aiutarmi? Grazie!

    1) Al DB aggiungo la tabella "Sessioni" con la seguente struttura:
    id (char 32)
    idUtente (int chiave esterna Utenti)
    dataCreazione (int secondi)

    2) Creo una variabile globale $idUtente che assumerà il valore di null se l'utente è un visotatore non loggato, altrimenti nel caso una persona si logghi, assumerà il suo id.

    3) Creo il seguente script (lo scrivo in PSEUDO-codice):
    Codice PHP:
    <?php

    $idUtente 
    null;

    function 
    open($save_path$session_name) {
        
    INSERISCO NELLA TABELLA SESSIONISE NON GIA' PRESENTE, L'UTENTE
        ALTRIMENTI 
    (SE GIA' PRESENTE) AGGIORNO NELLA TABELLA SESSIONI IL VALORE DATA_CREAZIONE
    }
    function close() {
        NON FARE NULLA !?!
        return true;
    }
    function read($idSession) {
        AGGIORNO NELLA TABELLA SESSIONI IL VALORE DATA_CREAZIONE
    }
    function write($idSession, $dataSession) {
        AGGIORNO NELLA TABELLA SESSIONI IL VALORE DATA_CREAZIONE
    }
    function destroy($idSession) {
        global $idUser = null; --> IMPORTANTE!!!!
        ELIMINO DALLA TABELLA SESSIONI LA SESSIONE CHE HA ID=$idSession
    }
    function gc($maxlifetime) {
        NON HO CAPITO A COSA SERVE ? ? ?
    }

    session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
    session_start();

    ?>
    4) Quando l'utente effetturà una richiesta al server (ad esempio con una chiamata ajax) controllerò la variabile globale $idUser:
    se $idUser == null stamperò un messaggio "sessione scaduta"
    altrimenti esegue la richiesta

    I MIEI DUBBI:
    -- A cosa dovrebbe servirmi la funzione "gc"?
    -- E' corretto utilizzare la variabile globale $idUser oppure esisite un metodo migliore?
    -- Invece di utilizzare la variabile $idUser per controllare se la sessione è scaduta o meno, non potrei semplicemente fare un controllo di questo tipo:
    if(!isset($_SESSION["idUser"])) echo "sessione scaduta"; (quindi dal mio script elimino completamente questa variabile globale)?
    -- Il campo dataCreazione della tabella Sessioni, per come ho scritto i 4 punti, non mi serve praticamente a nulla, forse sbaglio qualcosa? A cosa dovrebbe servirmi questo campo?
    -- Supponendo che la colonna creazioneData mi serva, per aggiornare il suo valore (nelle funzioni "open","read","write") mi basta utilizzare la funzione time(), corretto?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,805
    Ciao quando una sessione scade!
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  3. #3
    Quote Originariamente inviata da rocco.mod Visualizza il messaggio
    Ciao quando una sessione scade!
    Dopo 2 anni e mezzo spero abbia risolto!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.