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

Langage PHP Discussion :

Nettoyage de la session avec onUnload [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut Nettoyage de la session avec onUnload
    Bonjour,

    Je voudrais nettoyer la session d'un utilisateur lorsqu'il se déconnecte en utilisant la X. J'utilise une page générale qui appelle les autres par des requêtes ajax. Du coup, dans mon body j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onUnload='deconnexion()'>
    Et ma fonction deconnexion() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function deconnexion() {
    	alert("Au revoir");
    }
    Du coup, à la place de ce
    alert("Au revoir")
    , je voudrais qu'il appelle mon fichier deconnexion.php. Est ce que c'est possible de faire ça ?

    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
    <?php
    	require("connexion.php");
    	session_start() ;
    	$LastConnection = getdate();
    	$reqLastCo = 'UPDATE config_users SET lastconnection = NOW() WHERE login ="'.$_SESSION['login'].'"';
    	$bdd->exec($reqLastCo);
    	//destruction de toutes les variable de sessions
    	session_unset() ;
    	//destruction de la session
    	session_destroy() ;
    	?>
    	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    	<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    		<head>
    			<title>CQuest - Deconnexion</title>
    			<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    			<link rel="stylesheet" type="text/css" href="CSS/chartecss.css" />
    		</head>
    	</html>
    	<?php
    	echo "Vous êtes maintenant déconnecté.<br />Vous êtes redirigé vers la page de connexion...";
    	//header("Refresh: 3; URL=login.php" );
    	header("Refresh: 20; URL=login.php" );
    ?>
    Merci d'avance

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    Citation Envoyé par ciols Voir le message
    je voudrais qu'il appelle mon fichier deconnexion.php. Est ce que c'est possible de faire ça ?
    on a inventé ajax
    $moi= ( !== ) ? : ;

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    J'ai bien compris pourquoi ce que j'avais fais ne marchait pas et la nécessité d'utiliser l'AJAX mais je ne vois pas encore comment bien le faire... Par contre, si l'utilisateur refresh sa page est ce que le onunload se déclenche ?

    Si tu as une piste je suis preneur !

    Merci

    [Edit] Je suis entrain de me dire que c'est peut-être pas la bonne solution de le faire avec le onunload

    Grunk m'avait proposé quelques solutions :

    - Simplement enregistrer la date de dernière action (chargement de page , appuie sur bouton ...) et la considérer comme date de dernière connection. Très simple mais possiblement approximatif si l'utilisateur reste sur une page sans rien faire.

    - Faire un script ajax qui sur chaque page enverra par exemple toute les 5 sec la dernière date. Le problème c'est les ressources consommé si tu as beaucoup d'utilisateur.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Euh... ce que tu veux faire est une aberration...

    Je voudrais nettoyer la session d'un utilisateur lorsqu'il se déconnecte en utilisant la X.
    Il n'est pas possible de capturer cette action : la croix de fermeture du navigateur est un composant du logiciel auquel la page Web n'a pas accès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onUnload='deconnexion()'>
    Tu es conscient que onunload se déclenche chaque fois que tu quittes une page, c'est-à-dire même si l'utilisateur clique sur un lien de ton site ?

    Bref, ce n'est certainement pas comme ça qu'il faut procéder... Il suffit de laisser faire le mécanisme des sessions, éventuellement en adaptant le session_​cache_​expire.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Je ne sais pas si je me suis exprimé clairement mais en tout cas merci pour les éclaircissements. Je voudrais que lorsque l'utilisateur ferme l'onglet ou la page internet qu'il soit déconnecté, que l'heure et la date à laquelle il s'est déconnecté se mette en base et que sa session soit vidée. Est ce que c'est possible de faire ça ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il n'est pas possible de capturer cette action : la croix de fermeture du navigateur est un composant du logiciel auquel la page Web n'a pas accès.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    J'ai l'impression que session_cache_expire ne correspond pas à ce que j'ai envie de faire.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par ciols Voir le message
    Bonjour,
    Je voudrais nettoyer la session d'un utilisateur lorsqu'il se déconnecte en utilisant la X.
    Dans la quasi totalité des espaces membres, il existe un bouton pour se déconnecter ce qui permet explicitement de mettre fin à sa session. Peut-être une solution que tu pourrais envisager ?

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Justement j'ai déjà ce bouton qui permet à l'utilisateur de pouvoir se déconnecter, j'aurais voulu aussi le faire lorsqu'il ferme le navigateur.

    Mais bon du coup ça à l'air un peu compliqué par rapport à l'utilité que ça a...

    En tout cas j'ai déjà quelques pistes si le besoin se fait sentir de l'implémenter.

    Merci à vous.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 31/03/2006, 16h22
  2. [Sécurité] probleme de session avec aol
    Par jexl dans le forum Langage
    Réponses: 5
    Dernier message: 21/02/2006, 16h59
  3. Probleme de sessions avec un hébergeur
    Par totoranky dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 02h36
  4. Démarrer automatiquement une session avec pass
    Par cyberman.inc dans le forum Windows XP
    Réponses: 3
    Dernier message: 07/08/2005, 17h55
  5. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28

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