Code: "Votre session a expiré merci de vous identifier de nouveau"

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Lun 28 Sep 2015 - 21:51

Détails techniques


Version du forum : PunBB
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Tous les utilisateurs


Description du problème

Bonsoir à tous et à toutes,

Je recherche un code java qui permettrai de déconnecter automatiquement un membre sans activité au bout d'un temps donné.

Qui afficherai par exemple ceci: "Votre session a expiré merci de vous identifier de nouveau"

Merci d'avance.


Dernière édition par @To le Jeu 29 Oct 2015 - 13:15, édité 5 fois

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Mar 29 Sep 2015 - 23:14

Bonsoir,

Peut être une piste avec ce code qui permet l'actualisation d'une page après un temps donné sans activité:

Code:
<script>
        window.setTimeout('window.location.reload(true)', 480000);
        </script>

Il faudrait réussir à le transposer à un membre sans activité et faire apparaître une fenêtre pop up "Votre session a expiré merci de vous identifier de nouveau".

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Jeu 1 Oct 2015 - 16:31

Up du jour.

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Ven 2 Oct 2015 - 21:57

Up du soir Very Happy
Existerai t'il une astuce similaire?

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par Ange Tuteur le Sam 3 Oct 2015 - 19:24

Bonsoir To-DMEvo,

Essayer le script suivant.

Rendez-vous dans Modules > Gestion des codes JavaScript > nouveau

Placement : Sur toutes les pages
Code:
$(function() {
  if (_userdata.session_logged_in) {
    var inactive_time = 30*60*1000, // hh*mm*ss*ms
        message_error = 'Votre session a expiré merci de vous identifier de nouveau',
        cookie = my_getcookie('fa_session_exp'),
        logout;

    if (cookie && +cookie < +new Date - inactive_time) {
      alert(message_error);

      logout = document.getElementById('logout');
      if (logout) {
        $.get(logout.href, function() {
          my_setcookie('fa_session_exp', 'infinity');
          window.location.pathname = '/login';
        });
      } else {
        $.get('/login?logout=1', function(d) {
          var form = $('form[action^="/login?logout=true"]', d)[0];
          $.get('/login?logout=1&tid=' + form.tid.value + '&key=' + form.key.value, function() {
            window.location.pathname = '/login';
          });
        });
      }

    } else my_setcookie('fa_session_exp', +new Date);
  } else my_setcookie('fa_session_exp', 'infinity');
});

Modification du script :

inactive_time : Le temps avant l'utilisateur est déconnecté. 30*60*1000 par défault. ( 30 minutes )

message_error : Le message affiché quand la session expire.


Bon weekend. Smile

Ange Tuteur
****

Masculin
Messages : 477
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Sam 3 Oct 2015 - 19:47

Bonsoir Ange Tuteur,

Magnifique! Merci Very Happy

Il y a juste un soucis, quand le script s'applique cela décale le haut de mon forum.

Cela doit être le fait qu'il faille certainement l'adapter à la version punnB ..

Quelqu'un serait le modifier pour qu'il soit compatible s'il vous plaît ?

Bonne soirée à tous!

Edit 20h10:

Je voudrai combiner ce code avec l'actualisation automatique:

Code:
        <script>
                window.setTimeout('window.location.reload(true)', 480000);
                </script>

J'aurais souhaité que la déconnexion se fasse automatiquement avant l'affichage du message "Votre session à expiré, veuillez vous identifier à nouveau".
Pour schématiser:

1- Actualisation auto. Au bout de 1 heure (par exemple).
2- Déconnexion (réglé sur 1 heure - 1 min) , par conséquent n'apparaîtrai plus sur queel au moment de l'acutalisation.
3- Affichage du message : "Votre session à expiré, veuillez vous identifier à nouveau"

Merci de votre aide Wink


@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Lun 5 Oct 2015 - 19:02

Up du soir..

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Mar 6 Oct 2015 - 22:47

Up

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Jeu 8 Oct 2015 - 21:29

Up please, pour l'adaptation du code " Votre session à expiré, merci de vous identifier de nouveau" pour la version punnB dans un 1er temps. Merci

Bonne soirée à tous.

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par Ange Tuteur le Ven 9 Oct 2015 - 13:00

Re-bonjour,

Remplacer le script par :
Code:
$(function() {
  var inactive_time = 30*60*1000, // 30m
      message_error = 'Votre session à expiré, veuillez vous identifier à nouveau';

  if (_userdata.session_logged_in) {

    window.setTimeout(function() {

      var logout = document.getElementById('logout');
      if (logout) {

        $.get(logout.href, function() {
          my_setcookie('fa_timed_out', 'true');
          window.location.pathname = '/login';
        });

      } else {

        $.get('/login?logout=1', function(d) {
          var form = $('form[action^="/login?logout=true"]', d)[0];
          $.get('/login?logout=1&tid=' + form.tid.value + '&key=' + form.key.value, function() {
            my_setcookie('fa_timed_out', 'true');
            window.location.pathname = '/login';
          });
        });
       
      }

    }, inactive_time);

  } else if (my_getcookie('fa_timed_out') == 'true') {

    alert(message_error);
    my_setcookie('fa_timed_out', 'false');

  }
});

Désolée de la réponse tardive.

Ange Tuteur
****

Masculin
Messages : 477
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Ven 9 Oct 2015 - 15:42

Bonjour Ange Tuteur,

Pas de soucis Very Happy
Je les testé, cela déconnecte du queel et affiche le message en même temps, merci.

Est-ce que l'on peut rediriger directement sur l'index au lieu de la page de reconnexion svp ?
Est-il possible aussi d’éviter le fait que lors de la déconnexion l'on arrive sur le forum si l'on es sur un autre onglet de notre navigateur svp?

J'ai juste encore le décalage sur la barretool qui se produit au moment de la deconnexion.. surement dû à la version punnB.
Y a-t'il une adaptation à faire par rapport à cela ?

Désolé pour ces questions Surprised , Bonne journée

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par Ange Tuteur le Jeu 15 Oct 2015 - 13:03

Essayer cette :
Code:
$(function() {
  var inactive_time = 30*60*1000, // 30m
      message_error = 'Votre session à expiré, veuillez vous identifier à nouveau',
      redirect = '/forum';
 
  if (_userdata.session_logged_in) {
 
    window.setTimeout(function() {
 
      var logout = document.getElementById('logout');
      if (logout) {
 
        $.get(logout.href, function() {
          my_setcookie('fa_timed_out', 'true');
          window.location.href = redirect;
        });
 
      } else {
 
        $.get('/login?logout=1', function(d) {
          var form = $('form[action^="/login?logout=true"]', d)[0];
          $.get('/login?logout=1&tid=' + form.tid.value + '&key=' + form.key.value, function() {
            my_setcookie('fa_timed_out', 'true');
            window.location.href = redirect;
          });
        });
     
      }
 
    }, inactive_time);
 
  } else if (my_getcookie('fa_timed_out') == 'true') {
 
    alert(message_error);
    my_setcookie('fa_timed_out', 'false');
 
  }
});

Modifier "redirect" pour changer la page de redirection.

Est-il possible aussi d’éviter le fait que lors de la déconnexion l'on arrive sur le forum si l'on es sur un autre onglet de notre navigateur svp?
Non.. Lorsque alert() est exécuté, il passe à l'onglet il a été exécuté sur. reflexion

Vous pouvez utiliser le module suivant.

Créer un nouveau script sur toutes le pages :
PA > Modules > Gestion des codes javascript
Code:
(function() {
  var version = 0;
  /* VERSION FORUM
  ** 0 : PHPBB2
  ** 1 : PHPBB3
  ** 2 : PUNBB
  ** 3 : INVISION
  */
 
  if (!window.FA) window.FA = {};
  if (FA.Popup) {
    if (window.console) console.warn('FA.Popup has already been initialized.');
    return;
  }
 
  FA.Popup = {

    lang : {
      button_close : 'X',
      default_title : 'Popup',
      loading : 'Loading...',

      error_getPage : 'An error occurred while getting the page. Please try again later.',
      error_connection : 'A connection error occurred. Please check your internet connection and try again later.'
    },
   
    active : false,
   
    forum : {
      version : version,
      content : version ? '#main-content' : '#content-container > table > tbody > tr > td[width="100%"]',
      pages : ['.gensmall:has(.sprite-arrow_subsilver_left, .sprite-arrow_subsilver_right) a[href^="/"], .nav:has(.sprite-arrow_subsilver_left, .sprite-arrow_subsilver_right) a[href^="/"]', '.pagination:not(strong) span a', '.paging a[href^="/"]', '.pagination a[href^="/"]'][version]
    },
   
    /* open a new popup window */
    open : function(href, title, callback) {
      if (FA.Popup.active) FA.Popup.close(); // close opened windows
     
      var box = document.createElement('DIV'),
          overlay = document.createElement('DIV'),
          content = document.createElement('DIV'),
          close = document.createElement('INPUT');

      close.type = 'button';
      close.value = FA.Popup.lang.button_close;
      close.className = 'fa_popup_button fa_popup_close';
      close.onclick = FA.Popup.close;

      content.id = 'fa_popup_content';
      content.innerHTML = '<div class="fa_popup_loading">' + FA.Popup.lang.loading + '</div>';
     
      overlay.id = 'fa_popup_overlay';
      overlay.style.zIndex = '99998';
      overlay.onclick = FA.Popup.close;

      if (FA.Popup.forum.version == 2) box.className += ' pun';
      box.id = 'fa_popup';
      box.style.zIndex = '99999';
      box.innerHTML = '<div class="fa_popup_title">' + (title ? title : FA.Popup.lang.default_title) + '</div>';
      box.appendChild(close);
      box.appendChild(content);

      if (href) {
        $.get(href, function(data) {
          content.innerHTML = '';
          if (callback) callback(data, content);
          else {
            var main = $(FA.Popup.forum.content, data)[0];
            if (main) {
              content.appendChild(main);

              var page = $(FA.Popup.forum.pages, content);
              if (page[0]) page.click(FA.Popup.getPage);
            }
          }
        }).fail(function() {
          content.innerHTML = '<div class="fa_popup_error">' + FA.Popup.lang.error_connection + '</div>';
        });
      } else if (callback) {
        content.innerHTML = '';
        callback(content);
      }

      document.body.style.overflow = 'hidden';
      document.body.appendChild(overlay);
      document.body.appendChild(box);
     
      FA.Popup.active = true;
    },
   
    /* close an opened popup window */
    close : function () {
      var box = document.getElementById('fa_popup'),
          overlay = document.getElementById('fa_popup_overlay');
     
      box && document.body.removeChild(box);
      overlay && document.body.removeChild(overlay);
      document.body.style.overflow = '';
     
      FA.Popup.active = false;
    },

   
    /* get the page when a pagination link is clicked */
    getPage : function() {
      var content = document.getElementById('fa_popup_content');

      $.get(this.href, function(data) {
        var main = $(FA.Popup.forum.content, data)[0], page;

        if (main) {
          content.scrollTop = 0;
          content.innerHTML = '';
          content.appendChild(main);
         
          page = $(FA.Popup.forum.pages, content);
          if (page[0]) page.click(FA.Popup.getPage);
        } else {
          content.innerHTML = '<div class="fa_popup_error">' + FA.Popup.lang.error_getPage + '</div>';
        }
      }).fail(function() {
        content.innerHTML = '<div class="fa_popup_error">' + FA.Popup.lang.error_connection + '</div>' ;
      });
      return false;
    }
   
  };
})();

et ajouter le CSS ci-dessous :
PA > Affichage > Couleurs > Feuille de style CSS
Code:
#fa_popup_overlay {
  background-color:#FFF;
  opacity:0.8;
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
}

#fa_popup {
  font-size:10px;
  font-family:Verdana, Arial, Helvetica, sans-serif;
  background:#FFF;
  border-radius:3px;
  position:fixed;
  top:50px;
  left:12%;
  right:12%;
  bottom:30px;
  padding:3px;
  width:auto;
  overflow:hidden;
  box-shadow:0px 3px 10px rgba(34, 25, 25, 0.4);
}

#fa_popup_content {
  border:1px solid #EEE;
  border-radius:3px;
  padding:3px;
  overflow:auto;
  height:90%;
}

.fa_popup_title {
  color:#333;
  font-size:12px;
  font-weight:bold;
  font-family:"Trebuchet MS", Arial, Verdana, Sans-serif;
  border-bottom:1px solid #333;
  margin:8px 0;
  padding-bottom:2px;
}

input.fa_popup_button, a.fa_popup_button {
  color:#FFF !important;
  font-size:12px;
  font-weight:bold;
  text-indent:0;
  text-decoration:none !important;
  background-color:#39C;
  border:none;
  border-bottom:2px solid #17A;
  border-radius:3px;
  display:inline-block;
  line-height:20px;
  padding:0 6px;
  cursor:pointer;
  transition:300ms;
}

input.fa_popup_close {
  background-color:#E53;
  border-color:#C31;
  min-width:25px;
  position:absolute;
  top:2px;
  right:2px;
}

input.fa_popup_button:hover, a.fa_popup_button:hover {
  background-color:#333;
  border-color:#111;
}

input.fa_popup_button:focus, a.fa_popup_button:active, a.fa_popup_button:focus {
  background-color:#EB5;
  border-color:#C93;
  outline:none;
}

.fa_popup_error {
  color:#966;
  font-size:12px;
  background:#FEE;
  border:1px solid #ECC;
  border-bottom-width:2px;
  border-radius:3px;
  padding:9px 6px;
  margin:6px;
}

.fa_popup_friends {
  background:#EEE;
  border:1px solid #DDD;
  border-bottom-width:2px;
  border-radius:3px;
  display:inline-block;
  padding:3px;
  margin:3px;
  float:none;
  overflow:hidden;
}

#fa_popup .add_success { color:#8B5 }
#fa_popup .deny_success { color:#E53 }
#fa_popup .add_failed { color:#EB5 }

.fa_popup_loading {
  color:#333;
  font-size:14px;
  font-weight:bold;
  text-align:center;
  padding:25px;
}

.fa_popup_more {
  text-align:center;
  margin:3px;
  clear:both;
}

/* data corrections */
#fa_popup_content > td { display:block }
#fa_popup.pun tbody.statused span.status { position:static }
le tuto ( en anlgais )


Enfin remplacer :
Code:
alert(message_error);
( dans le script de déconnexion )

par :
Code:
FA.Popup.open('', message_error, function(popup){
  popup.innerHTML = '<div class="fa_popup_error" style="text-align:center;font-size:16px;">' + message_error + '</div>';
});

Ange Tuteur
****

Masculin
Messages : 477
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Ven 16 Oct 2015 - 23:49

Bonsoir Ange Tuteur,

Merci! Very Happy Tout fonctionne.

La fenêtre est grande, peut-on la réduire ? svp.
Je n'ai pas réussi à changer le texte qui s'affiche, je voudrai par exemple ajouter "Votre éventuel écrit à été sauvegardé".

Encore merci pour ce résultat.

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par Ange Tuteur le Sam 17 Oct 2015 - 11:31

Oui ! Remplacer la règle suivante dans votre feuille de style :
Code:
#fa_popup {
  font-size:10px;
  font-family:Verdana, Arial, Helvetica, sans-serif;
  background:#FFF;
  border-radius:3px;
  position:fixed;
  top:50px;
  left:12%;
  right:12%;
  bottom:30px;
  padding:3px;
  width:auto;
  overflow:hidden;
  box-shadow:0px 3px 10px rgba(34, 25, 25, 0.4);
}

par :
Code:
#fa_popup {
  font-size:10px;
  font-family:Verdana, Arial, Helvetica, sans-serif;
  background:#FFF;
  border-radius:3px;
  position:fixed;
  top:50px;
  left:25%;
  right:25%;
  bottom:50%;
  padding:3px;
  width:auto;
  overflow:hidden;
  box-shadow:0px 3px 10px rgba(34, 25, 25, 0.4);
}
( ou modifier les propriétés : left, right, et bottom )


Je n'ai pas réussi à changer le texte qui s'affiche, je voudrai par exemple ajouter "Votre éventuel écrit à été sauvegardé".
Avez-vous modifié la variable "message_error" ? Par exemple :

Code:
message_error = 'Votre éventuel écrit à été sauvegardé.',

Ange Tuteur
****

Masculin
Messages : 477
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Sam 17 Oct 2015 - 23:56

Bonsoir Ange Tuteur,

Super! C'est impeccable après des ajustements Very Happy

Merci pour toute cette aide! thumleft

Cordialement. résolu

Edit:

J'ai fais un essai sur écran de taille différente.

La fenêtre de déconnexion s'en trouve décalé et tronqué.. Il y aurait-il une solution pour que la fenêtre reste centré et de même configuration sur tout les tailles d'écran?

Cordialement.

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par Ange Tuteur le Mer 21 Oct 2015 - 15:24

Re-bonjour,

Remplacer :
Code:
#fa_popup {
  font-size:10px;
  font-family:Verdana, Arial, Helvetica, sans-serif;
  background:#FFF;
  border-radius:3px;
  position:fixed;
  top:50px;
  left:25%;
  right:25%;
  bottom:50%;
  padding:3px;
  width:auto;
  overflow:hidden;
  box-shadow:0px 3px 10px rgba(34, 25, 25, 0.4);
}

par :
Code:
#fa_popup {
  font-size:10px;
  font-family:Verdana, Arial, Helvetica, sans-serif;
  background:#FFF;
  border-radius:3px;
  position:fixed;
  top:50px;
  left:50%;
  right:auto;
  bottom:auto;
  padding:3px;
  width:300px;
  height:auto;
  margin-left:-150px;
  overflow:hidden;
  box-shadow:0px 3px 10px rgba(34, 25, 25, 0.4);
}

Cela devrait fixer la largeur de 300 pixels.

Ange Tuteur
****

Masculin
Messages : 477
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Dim 25 Oct 2015 - 23:58

Bonsoir Ange Tuteur,

La largeur est bien fixé merci.

Par contre je n'arrive à avoir la fenêtre bien centrée.. J'ai fais plusieurs tests.
Y à t-il une commande qui permettrai quelle soit centré quelque soit la taille de l'écran?

Merci, cordialement.

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par Ange Tuteur le Mar 27 Oct 2015 - 9:50

re,

La seule façon de le faire serait d'utiliser le CSS avant, mais il peut apparaître tronqué sur les petits écrans.

A bientôt.

Ange Tuteur
****

Masculin
Messages : 477
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Code: "Votre session a expiré merci de vous identifier de nouveau"

Message par @To le Jeu 29 Oct 2015 - 13:12

Bonjour Ange Tuteur,

J'ai finalement opté pour ce code que vous m'aviez donné auparavant (en étant large, j'ai mis au bout de 3hrs):

Code:
        $(function() {
          var inactive_time = 180*60*1000, // 3 heures
              message_error = 'Votre session à expirée. Votre éventuel écrit à été sauvegardé.',
              redirect = '/forum';
       
          if (_userdata.session_logged_in) {
       
            window.setTimeout(function() {
       
              var logout = document.getElementById('logout');
              if (logout) {
       
                $.get(logout.href, function() {
                  my_setcookie('fa_timed_out', 'true');
                  window.location.href = redirect;
                });
       
              } else {
       
                $.get('/login?logout=1', function(d) {
                  var form = $('form[action^="/login?logout=true"]', d)[0];
                  $.get('/login?logout=1&tid=' + form.tid.value + '&key=' + form.key.value, function() {
                    my_setcookie('fa_timed_out', 'true');
                    window.location.href = redirect;
                  });
                });
           
              }
       
            }, inactive_time);
       
          } else if (my_getcookie('fa_timed_out') == 'true') {
       
            alert(message_error);
            my_setcookie('fa_timed_out', 'false');
       
          }
        });

Je vous remercie pour toute l'aide apporté sur ce sujet thumright

Bonne journeé résolu

@To
*****

Masculin
Messages : 964
Inscrit(e) le : 26/02/2015

@To a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum