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 :

[Système] Exécuter code PHP à la fermeture d'une page


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut [Système] Exécuter code PHP à la fermeture d'une page
    Bonjour,

    Je suis en train de développer un site, c'est pas le premier et j'ai pas mal de connaissance en PHP mais la j'ai besoin d'executer un code PHP lorsque l'utilisateur quitte la page (pour mettre à jour la base de donnée et ainsi enregistrer la date et l'heure de sa derniere visite).
    J'ai essayé comme ca :

    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
     
    <?
    session_start();
    $nummembre=$_SESSION["nummembre"];
    ?>
    <html>
    <head>
    ....
    <?
    function Deconnect()
    {
    $date = date("d/m/Y");
    $heure = date("H:i");
    include "connect.php";
    $req=mysql_query("Update Membres Set date_dv='$date', heure_dv='$heure' Where NumMembre='$nummembre'");
    }
    ?>
    </head>
    <BODY bgColor="#C5C9C7" topmargin="0" onBeforeUnload="<? Deconnect(); ?>">
    ....
    Le "onBeforeUnload" est censé detecté la fermeture de la page, j'ai trouvé ca sur l'editeurjavascript, au départ c'est utilisé pour demander une confirmation à la fermeture de la page mais j'arrive pas à mettre du PHP dedans, si quelqu'un pouvait m'aider ca serait cool.

    Merci d'avance.

    Configuration: Windows XP
    Firefox 2.0.0.1

  2. #2
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    mais j'arrive pas à mettre du PHP dedans
    Normal c'est pas fesable
    En revanche si tu veux vraiment tu a toujours moyen de passer par ajax, c'est a dire que cette fonction sera en réalité une page a part. A la fermeture de ta page un bout de javascript utilisera l'objet XmltHttpRequest de javascript pour appeler une page php avant la fermeture de la page.

    Cependant avant de faire cela je t'invite fortement a tester cet événement javascript sur pas mal de navigateur (ie6, ie7, firefox, opera, et éventuellement d'autres). Par ailleur en cas de coupure de courant ou gros plantage du système, tu perdra ton visiteur sans effectuer cette mise a jour. c'est pour ça qu'il est déconseillé de procéder comme ceci.

    Je préconise plus de considérer un utilisateur connecté durant les n minutes qui ont suivi sa dernière page vu sur le site. Tu perdra bien sur en précision, mais tu est certain d'avoir des données fiables.

  3. #3
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    OK merci je vais voir quel solution marche le mieux, normalement le onBeforeUnload marche sur presque tous les navigateurs mais je vais faire des tests
    J'aurai préféré faire avec des cookies mais le mec préfére que je fasse des sessions alors faut faire avec ...
    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    L'utilisation du cookies ne changera rien a ton problème.
    De plus les sessions sont bien plus fiables que les cookies, elles sont bien solides.

    N'oublie pas que, le javascript est désactivées par n'importe qui, et qui se plus est, tu peut avoir des visiteurs qui ne possèdent pas de navigateur supportant le javascript (c'est le cas des navigateurs en monde texte).

    Je t'invite donc a bien réfléchir avant de choisir cette solution qui je pense est a éviter.

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

Discussions similaires

  1. [Système] Exécuter un script CGI à partir d'une page en PHP
    Par Olivier Regnier dans le forum Langage
    Réponses: 2
    Dernier message: 23/01/2008, 18h08
  2. [Système] problème d'exécution code php
    Par QuenTinO dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2007, 11h50
  3. [Système] Exécution code php écrit via fwrite()
    Par Torpedox dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2007, 17h09
  4. [Système] exécuter fonction php dans la même page ?
    Par AzertyH dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2006, 10h01
  5. Réponses: 7
    Dernier message: 20/10/2005, 20h51

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