IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Perte de contexte PHP après requête XHR


Sujet :

AJAX

  1. #1
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 258
    Points : 334
    Points
    334
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  2. #2
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 258
    Points : 334
    Points
    334
    Par défaut
    Mauvaise utilisation des sessions PHP, les session_start() sont à ajouter dans chaque page "indépendante" de l'index (non incluse dans index.php).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Perte de fonctionnalité du plugin après requête Ajax
    Par runner77 dans le forum jQuery
    Réponses: 4
    Dernier message: 15/12/2017, 14h31
  2. Réponses: 4
    Dernier message: 16/09/2009, 14h23
  3. [AJAX] Appeler un script php apres traitement réponse Ajax
    Par lekunfry dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/10/2008, 13h34
  4. [AJAX] [PHP] Lourde Requête INSERT, header ou ajax
    Par speedev dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/10/2006, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo