2011-08-16 11 views

risposta

19

Non è un bug, è una funzionalità. I cookie di sessione (ad esempio i cookie con una durata di 0) vengono eliminati alla fine della sessione del browser, che, nel caso di un'applicazione Web a schermo intero, si verifica non appena si esce dall'app Web. Se vuoi che persistano, imposta la durata del cookie su qualcosa di più grande dello 0 predefinito (io uso 1 anno).

Ora la tua domanda potrebbe essere: come posso impostare il mio cookie per tutta la vita? Supponendo che si sta utilizzando PHP, il pezzo di codice sarebbe:

$lifetime = 31536000; // one year 
setcookie($varName,$varValue,time()+$lifetime); 

Se stai usando le sessioni PHP, si dovrà riscrivere il cookie di aggiungere una vita maggiore di 0:

setcookie(session_name(),session_id(),time()+$lifetime); 

Normalmente, non è necessario riscrivere il cookie di sessione per modificare la durata predefinita, in quanto la funzione session_set_cookie_params dovrebbe consentirvi di farlo, ma ho scoperto che non è sempre il caso.

+0

Wow, grazie mille !! Ho fatto ricerche su questo per diversi giorni ora! Ho anche provato a salvare l'ID di sessione nella memoria locale e inviarlo al server quando l'app è stata avviata di nuovo, ma non ha funzionato. Grazie ancora! –

+0

È un piacere :) – KPM

+0

@ KPM ma non pensi che causi seri problemi di sicurezza? – nKognito

Problemi correlati