In PHP i dati di sessione vengono solitamente memorizzati in un file. L'unica cosa memorizzata nel cookie è un identificatore di sessione. Quando le sessioni sono abilitate e viene trovato un cookie di sessione valido, PHP carica i dati della sessione degli utenti dal file in una SESSIONE straordinariamente divertente chiamata super globale.
Le sessioni di base vengono avviate utilizzando session_start();
chiamato prima che qualsiasi testo venga inviato al browser. quindi gli oggetti vengono aggiunti o rimossi dall'oggetto di sessione utilizzando semplici indici di array, ad es.
$_SESSION['favcolour'] = 'blue';
tardi ...
$favcolour = $_SESSION['favcolour'];
biscotto di base solo le sessioni (senza memorizzazione locale) possono essere creati con una chiamata a
set_cookie('favcolour','blue'[,other params]);
prima di ogni testo viene inviato al browser, quindi recuperato dal cookie superglobale
$favcolour = $_COOKIE['favcolour'];
non è necessario chiamare session_start()
se si eseguono sessioni solo cookie.
i opzionale [, altri params] sono più avanzate e possono essere letti su qui http://www.php.net/manual/en/function.setcookie.php
Le sessioni possono diventare una discussione molto complessa, io suggerirei di fare qualche lavoro leggero in loro e quindi espandere la vostra conoscenza.
DC
tutto quello che avreste voluto sapere su sessioni PHP
http://www.php.net/manual/en/book.session.php
DC
Per riutilizzare codice di gestione della sessione di PHP è necessario aggiungere un gestore di scrittura utilizzando session_set_save_handler
e poi fare esattamente nulla in quel gestore. Questo perché viene chiamato dopo che l'output del browser è chiuso, quindi non è possibile inviare nulla al browser.
Prima di scrivere dati non di intestazione nel browser, utilizzare le funzioni set_cookie e memorizzare il contenuto dell'array $ _SESSION (dopo la serializzazione e la crittografia) in un cookie. quando le applicazioni iniziano, puoi leggere il cookie unserializzarlo e metterlo nell'array $ _SESSION.
Questo è un rapido suggerimento su cosa fare come non l'ho mai fatto, preferisco scrivere tutto il mio codice cookie. Potrebbero esserci dei problemi, ma non è difficile che alcuni test trovino i segreti.
DC
Non sono sicuro di seguirlo. Intendi memorizzare i dati di sessione nei cookie? È una buona idea? –
Si noti che i cookie possono memorizzare solo un massimo di 4 KB di dati. Questo è in genere il motivo per cui non viene visualizzata la memorizzazione della sessione basata sui cookie.Inoltre, prendere in considerazione il fatto che un certo numero di utenti ha disattivato completamente i cookie o impostato l'accesso restrittivo con la propria politica di sicurezza del browser. –
@cballou: le vecchie sessioni regolari di solito utilizzano anche i cookie. Tuttavia, memorizzano il SESSID e il resto dei dati viene archiviato sul server. Anche se penso che PHP proverà a inserire il SESSID nel parametro 'GET' se i cookie sono disabilitati. – mpen