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 :

Exécution de script PHP après fermeture du browser


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut Exécution de script PHP après fermeture du browser
    Salut tout le monde;
    Comment faire exécuter un script PHP qui détruit une session et enregistre l'heure de déconnexion dans la base de données après fermeture du browser.
    à noter que je ne veux pas utiliser les cookies juste sessions.
    Je voudrais faire ça car je fais des statistiques sur les pages visitées et la durée de session de chaque utilisateur dès l'ouverture de session en cliquant sure connecter jusqu'à fermeture de session en cliquant sur se déconnecter.
    Mais le problème ce qu'il y a des utilisateurs qui ne se déconnectent pas avant fermer le browser.
    merci et rappelez vous que j'ai besoin de votre aide .

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu vas devoir utiliser de l'ajax
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    Oui j'utilise déjà AJAX avec jQuery mais quelle est l'action qui va déclencher l’exécution du script PHP destination de la requête AJAX?

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(window).unload( function () { 
        // ajax ici
    });
    Comme ça ?

    http://api.jquery.com/unload/
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  5. #5
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    si j'associe mes requêtes AJAX à cet évènement et d'ailleurs je l'ai fait tout action à part la fermeture de browser comme actualisation de la page ou bien aller d'une page à l'autre via un lien va declencher un unload ce qui va vider les session . alors comment pailler à ce problème??

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Ah oui, effectivement.

    Sur le net, j'ai trouvé une astuce mais ça ne détecte pas la différence entre rafraichissement (F5) et fermeture du navigateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function onUnloadPage()
    {
    	if ((window.event.clientX < 0) && (window.event.clientY < 0)) //X button is clicked
    	{
    	     /*ajax*/
            }
    }
    $(window).unload( function () { 
        onUnloadPage();
    });
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  7. #7
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    ce n'est pas opérationnel si l'actualisation de page fermera la session come fermeture de browser :s

    La vraie question qui se pose, est ce qu'il n'y a pas de moyen de détecter le bouton de fermeture d'un browser qui se trouve en haut à droite.?

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Je voudrais faire ça car je fais des statistiques sur les pages visitées et la durée de session de chaque utilisateur ...

    La vraie question qui se pose ...
    La vrai question dont je me pose par rapport aux statistiques que tu mets en place, c'est quelle conclusion en tireras tu en obtenant le temps entre la dernière page visitée et le temps où le navigateur sera fermé ?


    Pour ma part, que l'utilisateur ai mis 2 secondes ou 3 heures à fermer son navigateur après la dernière page demandée, je ne vois vraiment pas quelle conclusion on peu en tirer.
    Du coup, je ne vois pas quelle action/modification/amélioration qu'il y aurait à apporter à un site en obtenant cette info.


    à noter que je ne veux pas utiliser les cookies juste sessions.
    Ca l'est déjà, car la persistance obtenue par la session est totalement basée sur un cookie, donc s'il n'y a pas de cookie lié à une session ça ne fonctionnera pas.

    Ensuite, si ce que tu recherche à faire n'est pas vraiment lié à des stats mais de sécuriser le site, c'est à dire qu'il ne soit pas possible qu'une fois le navigateur fermé de reprendre la même session, et bien théoriquement ça l'est déjà.
    La plupart des navigateurs et par défaut détruisent les cookies après fermeture.
    Du coup, s'il n'y plus de cookie, et bien le serveur devrait le détecter, et ne pas récupérer la session lié à ce cookie inexistant, par conséquent de repartir sur une nouvelle session/cookie.
    S'il y avait une identification auparavant, il faudra alors se ré-identifier.
    C'est théorique car si on prend Firefox par exemple, on peu faire en sorte de modifier ce fonctionnement dans les options.
    Ca reste néanmoins une action volontaire de l'utilisateur.



    A coté de ça, prospecte du coté de l'évènement "onbeforeunload", il me semble que la plupart des navigateurs le prennent en compte.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Ah oui, effectivement.

    Sur le net, j'ai trouvé une astuce mais ça ne détecte pas la différence entre rafraichissement (F5) et fermeture du navigateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function onUnloadPage()
    {
    	if ((window.event.clientX < 0) && (window.event.clientY < 0)) //X button is clicked
    	{
    	     /*ajax*/
            }
    }
    $(window).unload( function () { 
        onUnloadPage();
    });
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  10. #10
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    salut RunCodePHP:
    les clients pour lesquels je développe le site web veulent savoir est ce que leur site est bien utilisé par leurs clients en plus veulent savoir les rubriques les plus visitées donc c'est ce qu'ils veulent, en général c'est l’intérêt et ils insistent sur ce point.

  11. #11
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    les clients pour lesquels je développe le site web veulent savoir est ce que leur site est bien utilisé par leurs clients en plus veulent savoir les rubriques les plus visitées
    D'accord, rien de plus normal.

    Mais qu'est ce que cela apporte de savoir le moment où l'utilisateur ferme le navigateur ?
    Donc toi même en tant que développeur, quelle conclusion en tirerais tu ?

    Personnellement je ne vois vraiment pas.
    Il peut évidemment avoir des cas particuliers, je suis alors curieux de le savoir


    D'ailleurs, l'action de fermer le navigateur ne correspond pas à une rubrique ou une page du site à mon sens.

    De même que, si un utilisateur à plusieurs sites d'ouverts dans plusieurs onglets, qu'il ferme ensuite juste l'onglet du site en question et pas le navigateur, et bien il me semble qu'il sera impossible de déclencher quoi que ce soit au moment où le navigateur sera fermé.
    Disons qu'il me parais impossible d'obtenir à coup sûr et pour tous les internautes ce moment où ils fermeront leur navigateur.


    Cet action de fermer le navigateur n'a théoriquement aucun rapport avec le site car depuis très longtemps maintenant un navigateur fait bien plus que de faire une visite d'un seul et unique site Web, par conséquent cette info serait inexploitable.

    Seule la dernière requête HTTP que le navigateur a envoyé au serveur (en général lié à un clic sur un lien ou formulaire) correspond à mon sens à la dernière action de l'internaute, donc sa dernière visite ou sa sortie si on peu dire, et théoriquement cette info tu l'as.
    Donc théoriquement toujours tu devrais avoir tout l'ensemble de la navigation de chaque internaute, depuis le 1er contenu demandé jusqu'au dernier, et par conséquent permettre de ressortir les plus demandés.

    Tu remarqueras que j'utilise plutôt le terme de "contenu demandé" que "page visitée", car à mon sens ce terme "visiter" est pas loin d'être un abus de langage quand il s'agit d'un site Web à mon avis.
    Un internaute n'entre pas dans un lieu comme dans un musé, il ne vient même pas sur le site Web, il ne fait que recevoir du contenu (du HTML en général), ce qui n'est vraiment pas la même chose.
    Enfin, tout ça sauf erreur.




    Mise à part ces parenthèses, as tu essayé cet évènement onbeforeunload ?
    Il me semble que c'est le seul évènement à peu près exploitable pour déclencher un JS (comme Ajax) au moment de la fermeture du navigateur.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  12. #12
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    salut,
    Merci beaucoup RunCodePhp pour le temps que tu as consacré pour m’écrire toute cette réponse .
    Je laisse tomber les détails et je vais me concentrer seulement sur la visite du début à la dernière requête émise par l'utilisateur.

Discussions similaires

  1. Creer un Log après exécution du script PHP
    Par jameson dans le forum Langage
    Réponses: 7
    Dernier message: 09/02/2011, 18h07
  2. Réponses: 3
    Dernier message: 26/02/2007, 19h19
  3. Envoyer une variable Php après fermeture
    Par yamayo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/01/2007, 17h23
  4. [AJAX] XMLHTTPRequest => impossible d'exécuter tout script php
    Par AzertyH dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2006, 19h01
  5. [FLASH MX2004] Exécution de script PHP
    Par dleu dans le forum Flash
    Réponses: 2
    Dernier message: 30/03/2005, 19h10

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