gérer la session sans rafraichir la page

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] gérer la session sans rafraichir la page

    salut
    il me semble que les sessions se prolongent automatiquement lorsque l'on recharge une page. Or moi j'aimerais le faire sur un événement (comme un clic) pour éviter que la session n'expire si on reste longtemps sur la page.

    Y a-t-il quelqu'un pour m'aider ?
    Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
    http://www.template-creator.com Outil de création de templates
    Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

  • #2
    Re : gérer la session sans rafraichir la page

    Bonjour,

    Bien que la réponse soit déjà donnée, ça pourra servir à d'autres.

    Soit dans ton composant, tu prévois une méthode destinée aux requêtes Ajax (même si la requête ne fait rien, sauf le travail automatique de chargement Joomla!, ce qui met à jour la session).
    Soit un script indépendant, dans lequel tu charges le framework Joomla! plus une simple requête JSession::getInstance()
    Le tout évidemment, piloté en Ajax par quelques lignes de JavaScript.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : gérer la session sans rafraichir la page

      meric Jisse,
      en effet on en a discuté, dès que j'ai testé et approuvé la méthode je viendrai mettre quelques détails
      Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
      http://www.template-creator.com Outil de création de templates
      Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

      Commentaire


      • #4
        Re : gérer la session sans rafraichir la page

        me voilà de retour pour les explications. J'ai donc réussi à mettre à jour le timer de la session sur un événement JS.

        Première étape créer la fonction dans le controleur principal :
        Code PHP:
        /**
             * Update the session timer
             * @return void
             */
            
        function updatesession() {
                
        $session = &JSession::getInstance('none',array());
            } 
        Deuxième étape créer l'événement javascript et la requête ajax :
        ici j'ai mis l'événement dans la vue au clic sur un texte pour le test. On peut très bien imaginer l'encapsuler dans une fonction qu'on appelle n'importe quand dans un script.

        Code PHP:
        <script type="text/javascript">
            
        window.addEvent('domready', function() {
                
        document.id('test').addEvent('click', function() {
                
                    var 
        myurl "index.php?option=com_moncomposant&task=updatesession";
                    var 
        packageRequest = new Request.HTML({
                        
        url:myurl
                    
        });
                    
        packageRequest.send();
                });
            });
        </
        script
        et le code HTML de mon bouton de test :
        Code HTML:
        <div id="test">CLICK TO TEST SESSION</div>
        Voilà, c'est très simple et ça semble fonctionner, le timer de session.timer.last dans la base de données se met à jour à chaque clic.

        Merci à tous ceux qui m'ont aidé à trouver la solution
        Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
        http://www.template-creator.com Outil de création de templates
        Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

        Commentaire


        • #5
          Re : gérer la session sans rafraichir la page

          Envoyé par jisse03 Voir le message
          Soit un script indépendant, dans lequel tu charges le framework Joomla! plus une simple requête JSession::getInstance()
          L'instruction JSession::getInstance() est inutile, le framework Joomla crée une session de lui-même.

          Envoyé par jisse03 Voir le message
          Le tout évidemment, piloté en Ajax par quelques lignes de JavaScript.
          Cette solution fonctionne mais il est plus simple et cohérent d'utiliser le mécanisme de prolongation de session livré en standard avec Joomla.

          Voir le code du plugin remember.php (de type 'system') pour plus d'info.

          The Prisonner
          Fly06_Fr (http://www.fly06.fr/)
          -------------------------------------------
          Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X