Salve a tutti , sto costruendo un'applicazione web utilizzando AJAX e PHP come base per la navigazione e interazzione sul sito.
Il problema consiste nella cancellazione delle sessioni PHP una volta che avviene il refresh della pagina (il refresh della pagina deve essere fatto manualmente non avviene in automatico).
Più precisamente il problema si manifesta nel momento in cui vado a richiedere tramite AJAX due o più "parti di pagina" scritte in php e faccio il refresh della pagina , a questo punto accade che tutte le sessioni PHP create al momento del login vengono cancellate e nel mio caso con il conseguente logout dall'applicazione. Il problema si verifica soltanto quando vado a caricare tramite javascrip (non Jquery) e comandi AJAX due o piu risorse php mentre se ne carico solo una le sessioni rimangono stabili al refresh della pagina.
Come base Javascrip AJAX per caricare le risorse uso il seguente medoto descritto anche al seguente link
https://www.w3schools.com/js/tryit.a...s_ajax_xmlhttp
Le Parti di pagina in PHP vengono richieste essenzialmente tramite il codice riportato sopra, la seconda richiesta AJAX per la seconda parte da caricare in PHP viene caricata tramite il callback della funzione principale.codice:function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; callback_delle_mie_funzioni(); seconda_richiesta_ajax_per_php(); } }; xhttp.open("POST", "la_mia_risorsa.php", true); xhttp.send(); }
Il tutto funziona e con questo metodo ho caricato nella pagina le mie due risorse in php che rappresentano: la prima una pagina dal contenuto dinamico e la seconda una chat ed entrambe funzionano perfettamente le sessioni funzionano finche non faccio il refresh della pagina poi avviene reset di tutte le sessioni.
Un problema simile lo avevo avuto in precedenza nello stesso progetto anche nel caricare una singola risorsa e anche in quel caso al refresh della pagina avveniva il reset delle sessioni php con il conseguente logout. La prima volta il problema l'ho risolto aggiungendo ad ogni risorsa php caricata la seguente funzione all'inzio di ogni pagina che veniva carica.
Se ho capito correttamente session_start fa si che ogni sessione venga mantenuta o rigenarata al caricamento di una nuova risorsa php.Codice PHP:
session_start()
Ora dopo vari tentantivi di risolvere il problema sono al punto di partenza, qualche consiglio?
Ciao Grazie
Valerio