File temporanei Sessioni

keyascii

Nuovo Utente
29 Ott 2021
5
0
1
Buongiorno... il mio primo post:p quindi un saluto a tutti...
Come dice l'oggetto, mi chiedevo: ma i file temporanei che le ssessioni creano, si eliminano solo alla scadenza temporalke delle sessioni?
Praticamente ogni volta che chiamo session_start(), nella cartella tmp (xampp in locale) mi crea un file di sessione. Dopo un'ora di navogazione, mi ritrovo una cinquantina di files che non si cancellano nemmeno col session_destroy.
E' normale?

Grazie a tutti
 
Buongiorno... il mio primo post:p quindi un saluto a tutti...
Come dice l'oggetto, mi chiedevo: ma i file temporanei che le ssessioni creano, si eliminano solo alla scadenza temporalke delle sessioni?
Praticamente ogni volta che chiamo session_start(), nella cartella tmp (xampp in locale) mi crea un file di sessione. Dopo un'ora di navogazione, mi ritrovo una cinquantina di files che non si cancellano nemmeno col session_destroy.
E' normale?

Grazie a tutti
per la miseria... operativo questo forum
 
ciao, prova così,
PHP:
session_unset();
session_destroy();
Ciao marino, grazie per la risposta. No purtroppo, non funziona, nel senso che, non elimina tutti i file temporanei che crea la sessione.
Per completezza, devo dirti che per generare la sessione, uso una funzione che richiamo su ogni pagina in cui utilizzo appunto le sessioni sec_session_start();
Questa funzione contiene:
function sec_session_start() { $session_name = 'sec_session_id'; $secure = true; $httponly = true; session_name($session_name); session_start(); }
Nel frattempo, mi sono reso conto che nella funzione sopra, avevo inserito un session_regenerate_id(); che mi rigenerava la sessione senza cancellarmi quella vecchia per cui avevo una miriade di file per ogni utente per ogni sessione.
Ora, dopo il
session_unset(); session_destroy();
non mi cancella comunque il file temporaneo ma me lo svuota soltanto.
Qualche ulteriore suggerimento?
Grazie ancora per la risposta comunque
 
PHP:
function sec_session_start() {
    $session_name = 'sec_session_id';
    $secure       = true;
    $httponly     = true;
    session_name($session_name);
    session_start();
}

sec_session_start();
var_dump(session_id()); echo "<br />";
// session_unset();
// session_destroy();
die("DONE !");

con il codice soprastante e le 2 righe commentate, il file non viene cancellato

1636811176146.png


se attivo le due righe, il file precedente rimane (perché non viene più gestito da php)
mentre il nuovo file viene cancellato

1636811371367.png


mi sembra sia corretto il comportamento

concordi ?
 
concentrandosi sul codice si perde di vista la sequenza delle azioni,
mi spiego,
occorre uscire dall'applicazione passando dalle istruzioni session unset e destroy che eliminano il file,
la chiusura del browser ( X ) non elimina il file
 
Grazie per i suggerimenti Marino, grazie ai quali... ho scoperto il problema.
Nella pagina logout.php praticamente, ho questo codice:
PHP:
include 'admin/secure/functions.php';
sec_session_start();
$_SESSION = array();
session_unset();
session_destroy();
header('Location: ./');
Il problema era che anche nella index.php avevo la funzione sec_session_start(); che, ovviamente, faceva correttamente il suo lavoro per cui, dopo il logout, ritornavo nella index e mi rigenerava una sessione con relativo file vuoto.
Considerato che sto costruendo un backend, nella home page non ho bisogno di alcuna sessione per cui ho semplicemente eliminato da li, la funzione sec_session_start();
Problema risolto... Grazie ancora
 

Discussioni simili