[AJAX] Perte de contexte PHP après requête XHR
Bonjour,
J'ai un souci avec un site personnel que j'ai commencé. La navigation entière du site est en ajax, je fais donc chaque fois des requêtes xhr et remplis la div de contenu du site (ou une autre, dépendant des données).
J'ai un souci: La session ne survit pas aux requêtes xhr, ou du moins, dans les fichiers PHP cible des requêtes, les informations stockées dans $_SESSION deviennent inconnues.
C'est logique, dans le sens où ce n'est pas une inclusion du contenu du fichier cible dans l'index, mais une requête faite sur le fichier, il ne connait donc pas les variables de l'index, normal.
Sauf que ça pose pas mal de soucis, notamment de l'intérêt d'avoir une session... Est-ce qu'il y a une possibilité d'avoir accès à cette session PHP partout, car si je dois sur chaque fichier PHP réinitialiser les variables superglobales, ça casse pas mal le concept de ces variables.
Si non, comment faire?
Merci à vous pour vos réponses.
Le code de la requête, si ça vous est utile, mais c'est plutôt un souci de conception:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| function connexionUtilisateur() {
var divPseudo = document.getElementById('loginInput');
var mdp = document.getElementById('mdpInput');
var regPseudo = new RegExp('^[a-z0-9\-_]+$', 'i');
if(typeof divPseudo!== 'undefined' && typeof mdp!=='undefined') {
if(regPseudo.test(divPseudo.value)) {
var pseudo = divPseudo.value;
var xhr = new XMLHttpRequest();
var param = "p=" + pseudo + "&mdp=" + mdp.value;
alert(param);
xhr.open("POST", "Affichage/connexionUtilisateur.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var resultat = xhr.responseText;
alert(resultat);
}
};
xhr.send(param);
}
}
}; |
(les alerts servent au déboggage)