Direttive sulla sessione PHP
Tutte le direttive relative alla sessione possono essere impostate utilizzando il php.ini file. Sono menzionate alcune utili direttive PHP relative alla sessione.
Direttiva di sessione | scopo |
---|---|
sessione.salva_handler | Il valore della direttiva può essere File O mm O sqlite O utente. IL mm viene utilizzato per gestire i dati di sessione utilizzando la memoria. IL sqlite viene utilizzato per gestire i dati utilizzando il database SQLite. IL utente viene utilizzato per gestire i dati utilizzando la funzione definita dall'utente. |
session_auto_start | Il valore di questa direttiva sarà SU per avviare automaticamente la sessione; Altrimenti, lo sarà Spento. |
sessione.nome | Viene utilizzato per impostare il nome della sessione e il nome di sessione predefinito è PhpSessid. |
sessione.Save_path | Viene utilizzato per impostare il percorso in cui verranno archiviate le informazioni sulla sessione. Il valore predefinito di questa direttiva è File. |
sessione.hash_function | Viene utilizzato per generare un ID sessione hash. 0 è usato MD5 L'algoritmo e 1 viene utilizzato per il Sha algoritmo. |
sessione.cache_expire | Viene utilizzato per impostare il tempo di scadenza della sessione. |
sessione.use_cookies | Viene utilizzato per archiviare l'ID sessione impiegando il cookie. 1 viene utilizzato per impiegare i cookie e 0 è ammito per non usare il cookie. |
sessione.use_only_cookies | È usato per utilizzare il cookie solo per la memorizzazione dell'ID sessione. |
sessione.cookie_secure | Viene utilizzato per definire se il cookie impiegherà o meno la connessione sicura. È abilitato utilizzando l'on e disabilitato impiegando il Spento valori. |
sessione.cookie_lifetime | È usato per impostare la vita del biscotto. |
Puoi visitare il seguente link per saperne di più sulle direttive della sessione.
https: // www.PHP.net/manuale/en/ini.elenco.PHP
Funzioni di sessione PHP
PHP ha molte funzioni integrate per le attività di gestione delle sessioni. Alcune utili funzioni di gestione delle sessioni sono menzionate di seguito.
Funzione di sessione | scopo |
---|---|
session_start () | Viene utilizzato per avviare una nuova sessione o riavviare la sessione precedente. |
session_id () | Viene utilizzato per impostare o ottenere o entrambi impostato e ottenere l'ID sessione. |
session_create_id () | Viene utilizzato per creare un nuovo ID sessione. |
session_name () | Viene utilizzato per impostare o ottenere o entrambi impostato e ottenere il nome della sessione corrente. |
session_status () | Viene utilizzato per ottenere informazioni sullo stato corrente della sessione. |
session_reset () | Viene utilizzato per ricominciare l'array di sessione. |
session_unset () | È usato per non definito tutte le variabili di sessione. |
session_destroy () | Viene utilizzato per distruggere tutti i dati di sessione registrati. |
session_encode () | Viene utilizzato per codificare i dati della sessione corrente. |
session_decode () | Viene utilizzato per decodificare i dati della sessione corrente codificati. |
session_commit () | Viene utilizzato per scrivere i dati della sessione e chiudere la sessione. |
session_abort () | Viene utilizzato per rimuovere le modifiche all'array di sessione e chiudere la sessione. |
session_regenerate_id () | Viene utilizzato per generare una nuova sessione per la sessione esistente. |
session_cache_limiter () | Viene utilizzato per impostare o ottenere il limitatore della cache della sessione corrente. |
Session_cache_expire () | Viene utilizzato per impostare o ottenere il tempo di scadenza della cache della sessione corrente. |
Puoi visitare il seguente link per saperne di più sulle funzioni di sessione integrate di PHP: https: // www.PHP.net/manuale/en/ref.sessione.PHP.
Variabile di sessione PHP
PHP utilizza un array associativo chiamato $ _Session Per la memorizzazione dei dati di sessione. È una variabile "superglobal" a cui è possibile accedere da qualsiasi parte dello script. I valori vengono inizializzati in questa variabile dopo la creazione di una sessione e questa variabile diventa unset dopo aver distrutto la sessione.
Gestione della sessione
La gestione della sessione può essere eseguita dal server Web utilizzando il database o il file. La gestione della sessione può essere eseguita utilizzando il browser dell'utente se il browser supporta i cookie. Ma se i cookie del browser sono disabilitati dall'utente, in questo modo non può essere utilizzato per la gestione delle sessioni. Quindi, utilizzare il server Web è il modo migliore per gestire le sessioni. I passaggi per la gestione della sessione sono indicati di seguito.
Creare e stampare l'ID sessione
PHP ha due funzioni integrate per creare o riavviare una sessione precedente e quelle menzionate in precedenza in questo tutorial. L'uso session_start () La funzione è stata mostrata qui che viene utilizzata per generare una nuova sessione o re-generare una sessione precedente. Controlla che la sessione esiste per il visitatore e crea una nuova sessione se il visitatore visita la pagina la prima volta. Crea un file PHP con il seguente script che crea una nuova sessione per il visitatore e genera un ID di sessione univoco che è stato stampato da un'altra funzione integrata denominata session_id ().
// Avvia una nuova sessioneProduzione
Verrà visualizzato il seguente output dopo aver eseguito lo script sopra dal browser Web. L'ID sessione univoco è stato stampato qui e questo ID rimarrà invariato ogni volta che la pagina viene aggiornata. Se il browser viene chiuso e riaperto per eseguire questo script, verrà stampato un nuovo ID di sessione.
Memorizza e stampa i dati di sessione
La variabile $ _session deve essere inizializzata dopo aver creato l'ID sessione per archiviare i dati della sessione. Crea un file PHP con il seguente script che memorizza il valore della chiave "Nome" della variabile $ _session [] dopo aver avviato una nuova sessione. IL è impostato() La funzione è stata utilizzata nello script per verificare la variabile $ _session ['name'] è impostata o unset. Se il valore non èt per questa variabile, verrà impostato un valore per questa variabile. Se il valore è stato impostato per questa variabile, il valore di questa variabile verrà stampato con la formattazione.
// Avvia una nuova sessioneÈ stata avviata una nuova sessione per l'utente.
";Bentornato, ' . $ _Session ["nome"] . '.
';Produzione
Il seguente output apparirà dopo aver eseguito lo script sopra la prima volta. Secondo l'output, è stato generato un nuovo ID di sessione per il visitatore perché l'utente visita la pagina per la prima volta. La variabile $ _session ['name'] è stata inizializzata da un valore stringa e un messaggio è stato stampato per la nuova sessione.
Verrà visualizzato il seguente output se l'utente visita la pagina la prossima volta. Il valore della variabile $ _session ['name'] è stato stampato qui. Il seguente messaggio verrà visualizzato ogni volta fino a quando la sessione non viene distrutta o i dati della sessione vengono rimossi o il browser viene riaperto.
Crea una sessione dopo l'autenticazione dell'utente
Normalmente, la sessione viene creata per l'utente registrato del sito Web dopo aver autenticato l'utente in base ai dati validi per impedire l'accesso non autorizzato all'utente per i dati sensibili. La gestione della sessione è molto importante per il sito Web di e-commerce per tenere traccia dell'attività dell'utente. I dati relativi all'autenticazione dell'utente sono archiviati nel server di database come MySQL, SQLite, SQL Server, PostgreSQL, ecc. Le informazioni dell'utente per l'autenticazione sono state archiviate nel testo qui per semplicità. Crea un file di testo denominato utenti.TXT Con i seguenti contenuti e il file contiene il nome, l'e -mail, il nome utente e la password di tre utenti. Ogni campo è separato da una virgola (,) nel file. L'autenticazione verrà verificata utilizzando il nome utente o l'e -mail e la password.
utenti.TXT
Nome, e -mail, nome utente, passwordCrea un file HTML chiamato Loginform.html con il seguente script che visualizzerà un modulo di accesso con due campi di testo e un pulsante di invio. Il nome utente o l'e -mail verranno presi nel primo campo di testo e la password verrà presa nel secondo campo di testo. Quando il pulsante di invio premi, la pagina verrà reindirizzata a Sessione3.PHP che verrà creato in seguito.
Loginform.html
Crea un file PHP con il seguente script che autentica le informazioni di accesso in base ai dati del utenti.TXT file e inizializza i dati della sessione dopo aver autenticato l'utente. IL $ Login La variabile è stata utilizzata per tracciare se le informazioni di accesso inviate sono valide o non valide e il valore iniziale di questa variabile è falso. La prima funzione ISSET () verrà utilizzata per verificare se la variabile $ _Session ['Name'] è impostata o Unset. Se questa variabile non èt, la seconda funzione ISSET () verrà utilizzata per verificare il valore della variabile $ _post ['useremail']. Se i valori di questa variabile sono impostati, i valori del modulo inviati verranno archiviati in due variabili. Se i valori di queste variabili non sono vuoti, il utenti.TXT Il file verrà aperto per la lettura per verificare i valori del modulo inviati corrispondenti con i valori dell'e -mail o del nome utente e la password di qualsiasi utente del file di testo. IL esplodere() La funzione è stata utilizzata per dividere ogni riga del file in base alla virgola (,) e archiviare i valori divisi in quattro variabili. IL ordinare() La funzione è stata utilizzata per rimuovere lo spazio extra da entrambi i lati della variabile. Se viene rilevata una voce corrispondente, la variabile $ _session ['name'] sarà inizializzata con il nome dell'utente corrispondente che è stato recuperato dal file e un messaggio di successo, "Hai effettuato l'accesso con successo."Sarà stampato. Se non viene rilevata alcuna voce corrispondente, il modulo di accesso apparirà di nuovo. Se la pagina viene rivisitata dopo aver creato la sessione, verrà stampato un messaggio di benvenuto con il valore di $ _session ['name'].
Sessione3.PHP
// Definisci la variabile per il controllo dell'accesso validoHai effettuato l'accesso con successo.
";Bentornato, ". $ _Session ['name']."
";Produzione
Il seguente output apparirà dopo aver eseguito lo script sopra la prima volta. L'utente deve digitare il nome utente o la password validi per l'autenticazione.
L'indirizzo e -mail e la password sono stati forniti nel seguente modulo di accesso. Questi valori saranno abbinati dall'indirizzo e -mail e dalla password di ciascun utente del file.
Verrà visualizzato il seguente output se l'utente preme il pulsante di invio dopo aver fornito l'indirizzo e -mail e la password validi. Lo stesso output apparirà se l'utente fornisce un nome utente valido al posto dell'indirizzo e -mail per l'autenticazione. Il modulo di accesso verrà nuovamente visualizzato se l'utente viene fornito un nome utente o una password non validi.
Se l'utente ricarica nuovamente la stessa pagina dopo l'accesso correttamente, verrà visualizzato il seguente output. Il valore della variabile $ _session ['name'] è stato stampato qui con il messaggio di benvenuto. Questo output rimarrà invariato fino alla scadenza della sessione per l'utente o il browser.
Modifica i dati della sessione
I dati della sessione possono essere modificati dopo aver inizializzato la variabile di sessione. Crea un file PHP con il seguente script per conoscere il modo di modificare la variabile di sessione dopo aver inizializzato la variabile $ _session. La funzione ISSET () è stata utilizzata nello script per verificare se la variabile $ _Session ['Visit'] è impostata o Unset. Se la variabile $ _Session ['Visit'] non è impostata, questa variabile verrà inizializzata su 1. Se la pagina si aggiorna o ricarica nuovamente, il valore di questa variabile verrà incrementato di 1 per ogni aggiornamento. Il valore corrente di questa variabile verrà stampato ogni volta che viene caricata la pagina.
// Avvia la sessioneLa pagina è visitata per ". $ _Session ['Visit']. "volte
";Produzione
Il seguente output apparirà dopo aver eseguito lo script sopra per la prima volta. Il valore di $ _session ['visite'] è 1 qui perché quando la pagina viene caricata per la prima volta, questa variabile viene inizializzata su 1.
Verrà visualizzato il seguente output se la pagina viene caricata 3 volte. Il valore di $ _Session ['Visit'] è stato incrementato di 1 ogni volta che la pagina si ricarica.
Elimina i dati della sessione
I dati della sessione possono essere eliminati utilizzando non settato() funzione o la session_unset () funzione di PHP. Crea un file PHP con il seguente script che utilizza il non settato() funzione per eliminare i dati di sessione. La variabile $ _session ['nome utente'] è stata inizializzata con un valore stringa dopo aver avviato la sessione. Successivamente, il valore di questa variabile è stato stampato prima e dopo aver eseguito la funzione Unset () per eliminare i dati di sessione dalla variabile $ _Session ['Nome utente'].
// Avvia la sessioneProduzione
Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Il valore di $ _session ['nome utente'] è stato stampato prima di eseguire il non settato() funzione e la variabile $ _session ['nome utente'] è diventata vuota dopo l'esecuzione non settato() funzione.
Distruggere la sessione
Le informazioni sulla sessione possono essere rimosse insultando i valori della variabile $ _session che è stata mostrata nell'esempio precedente. PHP ha una funzione integrata denominata session_destroy () Per eliminare completamente tutte le informazioni relative alla sessione. Crea un file PHP con il seguente script che mostra l'uso del session_destroy () funzione. Un modulo con un pulsante di invio è stato utilizzato nello script per distruggere la sessione. Dopo aver avviato una sessione, la funzione ISSET () è stata utilizzata per controllare il “Distruggere la sessioneIl pulsante viene premuto e l'ID sessione non è vuoto. La sessione corrente verrà distrutta chiamando il session_destroy () funzione se l'ID sessione esiste se il "Distruggere la sessioneIl pulsante è premuto dall'utente. Se la pagina viene visitata per la prima volta e il "Distruggere la sessioneIl pulsante non viene premuto, quindi le informazioni sulla sessione verranno archiviate nella variabile $ _session ['name']. Se la pagina viene nuovamente visitata dopo la memorizzazione delle informazioni sulla sessione ma il "Distruggere la sessioneIl pulsante non viene premuto, quindi verrà stampato il messaggio di benvenuto.
// Avvia una nuova sessioneÈ stata avviata una nuova sessione per l'utente.
";Bentornato, ' . $ _Session ["nome"] . '.
';Produzione
Il seguente output apparirà dopo aver eseguito lo script sopra per la prima volta. Se l'utente fa clic su "Distruggere la sessione"Pulsante quindi la sessione verrà distrutta completamente e verrà visualizzata una pagina vuota.
Esempio 5: codifica e decodifica dati di sessione
I dati della sessione possono essere codificati per generare un valore di stringa serializzando i dati e i dati di sessione codificati possono essere convertiti nell'array deserializzando i dati. Crea un file PHP con il seguente script che codifica i dati di sessione utilizzando il session_encode () funzione e decodifica i dati di sessione codificati utilizzando il session_decode () funzione. Secondo il seguente script, le variabili $ _session ["nome"] e $ _session ["e -mail"] saranno inizializzate con due valori dopo aver iniziato la sessione. I valori di queste variabili sono stati codificati usando il session_encode () funzione e stampato in seguito. IL session_unset () La funzione è stata utilizzata per annullare la variabile $ _session. Successivamente, i dati della stringa codificati sono stati convertiti nell'array utilizzando il session_decode () funzione.
// Avvia una nuova sessioneViene generata una nuova sessione.
";Benvenuto, ' . $ _Session ["nome"] . '.
';Produzione
Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Dopo la codifica, i dati della sessione serializzati sono stati stampati nell'output. Secondo l'output, il tubo (|) e il colon (:) i simboli sono stati incorporati con i dati della sessione per creare la stringa codificata e la lunghezza di ciascun valore della stringa è stata inclusa anche nella stringa codificata. Successivamente, la stringa codificata è stata decodificata e il valore della variabile $ _session ["nome"] è stato stampato.
Conclusione
La gestione della sessione è una caratteristica molto importante di qualsiasi applicazione basata sul Web. PHP ha molte direttive di gestione delle sessioni e funzioni di sessione integrate per gestire le attività relative alla sessione. Alcuni usi delle funzioni di sessione comunemente usate sono stati mostrati in questo tutorial utilizzando script PHP. Il compito di alcune funzioni di sessione può essere svolto utilizzando le direttive di sessione particolari. Ad esempio, se il session_auto_start La direttiva è impostata su SU quindi avverrà la sessione automaticamente senza usare il session_start () funzione. L'uso di una tabella di database è un modo efficiente per archiviare i dati di sessione che non sono trattati in questo tutorial. Ma lo scopo della sessione per l'applicazione Web e il modo di implementare la funzione di gestione della sessione utilizzando lo script PHP è stato mostrato in questo tutorial per aiutare i nuovi utenti PHP ad aggiungere questa funzione nella loro applicazione.