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

MkFramework Discussion :

Informer en ajax la perte de session


Sujet :

MkFramework

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable SAV
    Inscrit en
    Mars 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable SAV

    Informations forums :
    Inscription : Mars 2010
    Messages : 122
    Points : 128
    Points
    128
    Par défaut Informer en ajax la perte de session
    Bonjour,
    J'ai deux modules, l'un avec une authentification et l'autre sans pour l'instant.
    On accède au module sans authentification après authentification, à moins de connaître le chemin par coeur du module sans authentification.
    Le mot authentification est répété plusieurs fois ci-dessus car il est la source de mon problème.
    Dans le module sans authentification, j'ai des fenêtres modales qui accèdent en AJAX aux données qui se trouvent dans le module avec authentification.
    J'espère être toujours clair dans mes explications.
    Or il m'arrive de rester un inactif assez longtemps !!!
    Quand je reviens, je clique sur le lien qui ouvre ma fenêtre modale et lance une recherche qui ne me donne pas de résultat.
    Tout simplement par ce que je ne peux plus accéder à la méthode du module qui est protégé par l'authentification dans sa méthode _before()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function before(){
    		$this->oLayout=new _layout('template1');
     
    		//$this->oLayout->addModule('menu','menu::index');
     
                    //on active l'authentification
    		_root::getAuth()->enable();
    	}
    Voici enfin ma question
    Comment informer l'utilisateur qu'il faudrait qu'il s'authentifie de nouveau pour accéder à cette page, sachant que la redirection vers la page d'authentification
    sur mon site fonctionne très bien si on n'est pas dans ce cas de figure.
    Ci-dessous la méthode en question
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
    public function _list(){
     
        $sRecherche =_root::getParam("sRecherche",null) ; // resultat d'une recherche
        $iAjax_traitement =_root::getParam("iAjax",null) ;
        if((int)$iAjax_traitement == 1)
        {
          //echo "Traitement ajax en cours ...";
          $this->oLayout->setLayout	( 'ajxlayout'	) ; // chargement de layout vide pour notre affichage
          _root::setConfigVar('site.mode','prod'); // desactive la barre Debug
     
          if(_root::getAuth()->isConnected())
          {
             $tMk_mfp = $this->listeAjaxMfp() ;
             echo json_encode($tMk_mfp) ;
          }
          else
          {
            $outp = "[";
            $outp .= '{"objet_id":"0",';
            $outp .= '"nom":"Veuillez vous reconnecter"}';
            $outp .="]";
            return $outp ;
          }
     
        }
        else
        {
           .....
        }
    }
    Cordialement

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je regarderai ce soir, mais à la base c'est du pure php, je vais voir quand même pour faciliter cette fonctionnalité

    je réponds ce soir
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    J'ai fait ce petit POC:

    A ajouter soit dans une vue, soit dans le layout
    Code php : 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
     
    <script>
    var iTimeStamp=0;
    function reloadTimeout(){
    	var a=getById('timeout');
    	if(a){
    		a.innerHTML='Il reste '+iTimeStamp+' s';
    	}
    	iTimeStamp--;
    	if(iTimeStamp<0){
    		alert('Vous etes deconnecte');
    		a.innerHTML='Vous etes deconnecte';
    	}else{
    		setTimeout(reloadTimeout,1000);
    	}
    }
     
    </script>
    <?php if(isset($_SESSION) and isset($_SESSION['timeout'])):?>
    	<?php $timeout=( ($_SESSION['timeout']-time() ));?>
    	<p id="timeout">Il reste <?php echo $timeout?>s</p>
    	<script>iTimeStamp=<?php echo $timeout?>;reloadTimeout();</script>
    <?php endif;?>

    L'idée: au demarrage de la page, on calcul le temps de timeout et on lance un chrono permettant de connaitre le temps en secondes restant qui défile jusqu'à zéro: popup de déconnexion

    A vous de l'adapter à vos besoins
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Membre habitué
    Homme Profil pro
    Responsable SAV
    Inscrit en
    Mars 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable SAV

    Informations forums :
    Inscription : Mars 2010
    Messages : 122
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Grâce à votre POC, j'ai eu une simple idée pour mon problème. L'idée de vérifier cycliquement la perte de la session est intéressante, mais à mon niveau, je voulais juste sur la fenêtre modale, informer l'utilisateur que l'absence de résultats dans sa recherche est due à un problème d'authentification. Alors j'ai supposé que ma fonction ajax lorsqu'elle est exécutée, renverrait toujours un résultat (nul ou pas) et lorsqu'elle rencontrerait une exception, il faudrait que l'utilisateur vérifie s'il est toujours authentifié.
    J'utilise Mootools et le plugin simplemodal (http://simplemodal.plasm.it/)
    ci-dessous ma capture d'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    onSuccess: function(responseJSON)
    {
      try{
          var tObjets =   JSON.decode(JSON.parse(responseJSON)); //recupere un tableau de messages
      } catch(e){
          //console.log(e)
          var message = "Veuillez vous authentifier de nouveau" ;
          $('info_messages').set('html', message); // affiche info
        }
      ...
      ...
    }
    Je vous remercie Imikado pour cette disponibilité toujours constante.
    Cordialement

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

Discussions similaires

  1. [AJAX] appel AJAX lors d'une perte de session
    Par CocoLeNain dans le forum AJAX
    Réponses: 0
    Dernier message: 31/05/2010, 21h35
  2. [PHP 5.2] Perte de session lors de requête AJAX
    Par arkhesis dans le forum Langage
    Réponses: 6
    Dernier message: 31/08/2009, 20h23
  3. [JSP/AJAX] Perte de session et de response dans ma JSP
    Par maxbzh56 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/08/2006, 17h34
  4. [AJAX/JSP] Perte de la session et de response sous IE
    Par maxbzh56 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/08/2006, 11h04

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