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 :

History des Navigateurs web


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 90
    Points
    90
    Par défaut History des Navigateurs web
    Salut tout le monde,

    J'ai un probleme avec une web page que je developpe et que je vais essayer d'expliquer par un exemple, j'espere que je poste au bon endroit:

    Un utilisateur est sur la page web (exemple: developpez.net) ensuite decide d'aller sur google.fr (sans changer de tab.) etant sur google decide avec le "back bouton" du Navigateur de retourner sur developpez.net (savoir de quel url vient l'utilisateur) et moi je veux qu'apres ce retour il doit de nouveau se connecter avec son login et mot de passe meme si la session n'est pas achevee.

    Malheureusement je ne trouve pas de solution car l'historique du navigateur peut etre eteint par le l'utilisateur.

    j'utilise c#(asp.net mvc) comme language de programmation et javascript (Jquery en grande party).

    Merci pour l'aide

  2. #2
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Je ne suis pas certain de bien comprendre le desiderata.

    Si tu ne veux pas garder ton utilisateur logué, il suffit de ne pas utiliser de session ....


    Ou alors tu veux qu'il reste logué d'une page à l'autre tant qu'il reste sur ton site mais que s'il va 1 seconde ailleurs il soit délogué ? C'est bien ça ?

    Dans ce cas, je pense que le plus simple est de se servir du "referrer", en pseudo code ça donnerait un truc comme ceci (à placer au début de tes pages) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(referrer != "monsite.com"){
        killPreviousSessions();
    }
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 90
    Points
    90
    Par défaut
    Merci pour la reponse et il s'agit du cas: qu'il reste logué d'une page à l'autre tant qu'il reste sur ton site mais que s'il va 1 seconde ailleurs il soit délogué.

    J'ai essaye referrer mais ca ne marche pas:

    de "monsite.com" je vais a "monsite.com/a" et reviens sur mon "monsite.com"
    le referrer en ce moment est "monsite.com/a" et quand je vais sur "google.com" et fais un back avec "back bouton" du navigateur, je retombe sur "monsite.com" mais le referrer est "monsite.com/a" et non "google.com"

    Merci de m'aider.

  4. #4
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Ca se produit car ton navigateur te redonne ta page précédente dans l'état dans laquelle elle a été appelée précédemment (post, referrer, etc..).

    Pour éviter cela, tu dois forcer le rechargement de ta page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cache-Control: no-cache, max-age=0, must-revalidate, no-store

    coté client(javascript), tu peux interdire le bouton précédent aussi :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

  5. #5
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Sinon l'autre solution c'est que pour chaque page quittée, tu vérifies si tu retournes vers une de tes pages :

    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
    var destroy_session = true;
    function keep_session(){
        destroy_session = false;
        return true;
    }
    var links = document.getElementsByTagName('a');
    for(i=0;i<links.length;i++){
        if(links[i].href.indexOf(location.host)){
            links[i].onclick = keep_session;
        }
    }
    document.body.onbeforeunload = function(){
        if(destroy_session){
            $.ajax('destroyer.php'); // appel ajax via une librairie
        }
    };
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par Willpower Voir le message
    Ca se produit car ton navigateur te redonne ta page précédente dans l'état dans laquelle elle a été appelée précédemment (post, referrer, etc..).

    Pour éviter cela, tu dois forcer le rechargement de ta page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cache-Control: no-cache, max-age=0, must-revalidate, no-store

    coté client(javascript), tu peux interdire le bouton précédent aussi :
    Une fois de plus merci pour tes reponses.
    j'ai essaye cette variante et de me rendre compte que l'utilisateur peut configurer son navigateur pour ne pas avoir d'historique et du coup s'il etait sur ma page et va ensuite sur google et choisi a partir du favoris alors il y est de nouveau (je fais dans un online banking).

    Merci

  7. #7
    Membre actif Avatar de MaitreKaio
    Profil pro
    Freelance Java / Web / Mobile
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance Java / Web / Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 240
    Points
    240
    Par défaut
    Je m'incruste dans la discussion car parmi tous les trucs justes qu'a dit Will, il y a ceci qui m'interpelle:
    coté client(javascript), tu peux interdire le bouton précédent aussi :
    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part
    history.forward()
    Je ne comprends pas ce que tu veux dire. Tu peux m'expliquer ?
    J'ai des questions à toutes vos réponses (Woody Allen)
    Mon entreprise: http://qi2-software.fr
    Mon blog Java: http://torrefacteurjava.fr
    Mon blog Pas Java: http://bloq.qi2-software.fr

  8. #8
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par mourbare Voir le message
    Une fois de plus merci pour tes reponses.
    j'ai essaye cette variante et de me rendre compte que l'utilisateur peut configurer son navigateur pour ne pas avoir d'historique et du coup s'il etait sur ma page et va ensuite sur google et choisi a partir du favoris alors il y est de nouveau (je fais dans un online banking).

    Merci
    Dans ce cas, ma première réponse reste bonne, puisque le referrer (vide via favori) est différent de ton site, on tue la session en cours.

    Le problème à cette solution était juste que le bouton(/commande) précédent te redonnait ta page dans l'état précédent avec ses variables d'appels (GET, POST, REFERRER, ...) mais pour éviter cela, (je pense, je n'ai pas testé) qu'un header interdisant le cache (ou via .htaccess) devrait résoudre le problème.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/06/2011, 18h56
  2. API javascript des navigateurs web mobiles
    Par kiwkiw dans le forum Mobiles
    Réponses: 0
    Dernier message: 27/04/2011, 10h20
  3. Réponses: 6
    Dernier message: 09/02/2010, 11h47
  4. Etude de compatibilité des navigateurs Web
    Par khaliloff dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 05/02/2010, 10h24
  5. Réponses: 3
    Dernier message: 21/07/2008, 20h48

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