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

JavaScript Discussion :

[AJAX] Gestion de session via ajax


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut [AJAX] Gestion de session via ajax
    Bonjour j'ai un big problème et j'aurai besoin d'aide
    Mon problème est que qu'un utilisateur connecter sur un site et étant logé peut ce déconnecter en cliquant sur un bouton .
    Le problème est que lorsqu'il ferme la fenêtre il ne ce déconnecte pas
    Existe s'il un moyen pour ce déconnecter lorsqu'il ferme la fenêtre?
    ou alors une requête en ajax qui regard le si la session et utilisé sinon au bout d'un moment elle le déconnecte

    Merci a l'avance de votre aide!!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par bobyyy Voir le message
    Le problème est que lorsqu'il ferme la fenêtre il ne ce déconnecte pas
    Existe s'il un moyen pour ce déconnecter lorsqu'il ferme la fenêtre?
    La connexion dont tu parles fait référence à la session de l'utilisateur : il s'agit d'un problème serveur, donc PHP.
    Tu peux essayer d'appeler le code utilisé dans le bouton de déco dans l'évènement onbeforeunload du <body> mais je ne crois pas que ça fonctionne sur tous les nav.
    Citation Envoyé par bobyyy Voir le message
    ou alors une requête en ajax qui regard le si la session et utilisé sinon au bout d'un moment elle le déconnecte
    Heu ... ben oui, mais pour Ajax, si la fenêtre est déjà fermée, c'est un peu râpé

    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    Le problème c'est que avec le onbeforeunload quand on fait actualiser sa détruit la session

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par bobyyy Voir le message
    Le problème c'est que avec le onbeforeunload quand on fait actualiser sa détruit la session
    Ah ben oui effectivement

    Le délai d'expiration des sessions se paramètre normalement au niveau du serveur : ça peut peut-être résoudre le problème plus simplement ...

    A+

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    comment faire
    IL est pas possible de mettre un code?

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Vu du serveur, impossible de faire la différence entre un utilisateur qui dort
    et un qui a fermé sa fenêtre.

    Etant donné qu'il n'est pas fiable d'assurer l'envoi d'une requête qui indiquerait
    la fin de la session, tu es contraint d'utiliser un timeout

    Comme l'a dit E.Bzz, tu peux configurer le délais des sessions, ou alors simuler
    ce délais (si il est plus court) avec une variable de session qui contient la date
    de la dernière requête.

    Coté client, tu peux faire des requêtes en "tâche de fond" avec Ajax pour maintenir la session ouverte, par exemple toutes les 10 secondes
    et mettre un timeout de session à 30 secondes.

    Méfie-toi quand même si le timeout est trop court. Ta session pourrait expirer
    à cause d'un ralentissement temporaire sur le réseau.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    salut le problème c'est que je ne connait rien en ajax c'est pour sa que je pose ma question
    Le timeout s'execute comme cela mais pour l'ajax je fait comment
    setTimeout("xxx",30000);
    Merci de m'aidé

  8. #8
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Voici un exemple, à développer surement, mais ça donne une idée.

    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
     
     
    function getXhr() {
      try { return new XMLHttpRequest(); } catch (e) { } // Standard
      try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { }
      try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
      return null;
    }
     
     // envoie une requête, sans attendre de réponse
    function maintient() {
      var xhr = getXhr();
      var url = "session.php?stamp=" + new Date().getTime(); // envoie l'heure
      xhr.open("GET", url, true); // prépare une requête asynchrone
      xhr.send(null); // envoie la requête sans body
    }
     
    // initialise l'interval d'appel quand la page est chargée
    window.onload = function() { // utiliser addEventListener si nécessaire
      setInterval( maintient, 10000 ); // 10 sec par exemple
    };
    et dans session.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
      session_start();
      echo "ok"; // sert à rien, mais utile pour tes tests
    ?>

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    Bonjour merci pour ta réponse
    Franchement je ne comprend rien a ton code je suis novice en javascript et ajax et je sait pas comment faire peut tu m'expliqué?
    J'ai inséret le code mais sa marche pas lol

    Merci de ton aide

  10. #10
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Je pense qu'un peu de lecture sur le sujet est nécessaire, ici

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12
    Par défaut
    Ok Merci je vais chercher

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 18/11/2014, 10h47
  2. [AJAX] Ajax et gestion des erreurs via JSON
    Par allserv dans le forum AJAX
    Réponses: 0
    Dernier message: 13/07/2010, 11h35
  3. [Web MVC][Ajax] Formulaires et soumission via Ajax
    Par Invité dans le forum Spring Web
    Réponses: 0
    Dernier message: 03/02/2009, 12h27
  4. [AJAX] Recuperer du JS via Ajax ?
    Par nuranto dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/12/2007, 16h44
  5. [Sécurité] Session avec Ajax
    Par Florent08800 dans le forum Langage
    Réponses: 6
    Dernier message: 08/09/2006, 17h37

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