Sto sviluppando uno script di analisi che le persone saranno in grado di aggiungere alla propria pagina per tenere traccia dei dati dei visitatori. Uno dei problemi che ho riscontrato è quello di mettere a punto un modo per tenere traccia delle sessioni individuali quando visualizzano la pagina di qualcuno da un browser privato (ad esempio Incognito).Ricordando la sessione PHP Navigazione privata
Questo è lo script che sto utilizzando per vedere se qualcuno osserva se qualcuno è attivo da più di 30 minuti, se lo ha, verrà creata una nuova sessione, in caso contrario, riprenderanno la sessione precedente .
session_start();
$max_time = 1800;
$current = time();
if (!isset ($_SESSION['Stationary'])){
$_SESSION['Stationary'] = time();
$session = $_SESSION['Stationary'];
}
if (!isset ($_SESSION['Inactive'])) {
$_SESSION['Inactive'] = time();
} else {
$session_life = $current - $_SESSION['Inactive'] ;
if ($session_life > $max_time) {
session_destroy();
session_start();
$_SESSION['Inactive'] = time();
$_SESSION['Stationary'] = time();
$session = $_SESSION['Stationary'];
} else {
$_SESSION['Inactive'] = time();
$session = $_SESSION['Stationary'];
}
}
Questo script funziona perfettamente quando un utente visualizza la mia pagina da un normale browser (IE. Chrome Incognito), tuttavia quando lo vedono su qualcosa come un iPhone, in Navigazione anonima, ogni volta che accedono ad una nuova pagina , viene visualizzata una nuova sessione, un problema che non ho quando viene visualizzato diversamente.
Quindi la mia domanda è, sono consapevole che la visualizzazione delle pagine in un browser privato si ottiene attraverso il cache temporaneo che viene cancellato una volta che il browser è chiuso, tuttavia perché è anche quando il browser non è chiuso, aprendo un link distrugge la loro sessione precedente anche quando il link porta a un'altra pagina, con lo stesso script sulla pagina?
Esiste una soluzione alternativa?
EDIT: Vorrei sottolineare che questo script è stato inserito in un file php con l'intestazione application/json
per essere utilizzato come file pure un JavaScript.
A proposito, è possibile configurare la durata delle sessioni tramite 'session.gc_maxlifetime'. –
My WebHost non consente di gestire il file di configurazione php purtroppo, @ Ja͢ck – Brad
Puoi impostarlo con 'ini_set()' (a causa di PHP_INI_ALL), quindi non ci dovrebbero essere problemi lì. –