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 :

Calcul temps passé sur une page PHP pur


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut Calcul temps passé sur une page PHP pur
    Salut à tous !

    Voilà, je voudrais créer un module d'analyse de la fréquentation de l'extranet de ma boîte où l'une des clés est le temps passé par page...

    Pour cela, il faut que je récupère en unités de temps (minutes ou secondes ou millisecondes, peu importe) la différence entre l'accès à la page du visiteur, et l'accès à une autre page (dont le script de delog).

    Avec JS, on peut le faire via les évènements onload et onunload, mais je voudrais éviter d'utiliser ce langage (je pense que pas mal de mes visiteurs l'ont désactivé...).

    Est-ce possible avec PHP seul ? J'ai peur que non, mais si un ingénieux développeur avait un brin d'idée à me soumettre, ce serait du bonheur !

    Précision : je voudrais, si possible, éviter de trop utiliser les variables GET déjà bien exploitées par le développeur précédent....

    Merci aux courageux !
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Tu peux pas récupérer l'heure d'entrée et l'heure de sortie ?
    Chacune stockée (session ou autre) et tu fais la différence. J'imagine que tu y a pensé aussi il doit y avoir une subtilité qui m'échappe.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Heu lors de l'appel d'une page donnée (toutes en fait) tu stockes l'heure/minute/seconde microseconde dans une session, et sur le script de delog tu calcules l'écart.

    Mais j'ai peut etre mal saisi la demande...
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  4. #4
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    A chaque début de page tu peut enregistrer l'id du visiteur, son nom, la date et la page visité.
    Pour le dernier accès tu à la page de délog, si ils l'utilisent ....

    Après ca tu a tout ce qu'il faut pour faire des stats.

  5. #5
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Salut !
    Enfin un signe de vie ! Merci !

    La difficulté ne réside pas dans l'heure d'entrée et de sortie du site (log et delog) mais dans l'heure d'entrée et de sortie de chaque page contenue dans le site...

    C'est pas évident pour moi... c'est un truc que je n'ai jamais fait.

    J'ai bien pensé aux sessions auxquelles j'affecterais la valeur d'un time() au moment du relai, mais je ne vois pas comment faire la différence avec la session suivante et stocker la valeur dans la base...

    T'aurais pas un indice?
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Au début de chaque page tu peux ajouter un bout de code qui ferait en gros : récupération de $_SESSION['id_page'] (qui correspond en fait à l'id de la page précédente), calcul de l'écart entre l'heure actuelle et $_SESSION['heure'], bidouille avec ça (sauvegarde en base peut-être), puis mise à jour des données avec la page et l'heure courantes. Tu mets ce code dans un fichier php que tu include au début de chaque page.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Tu stockes ce dont tu as besoin dans deux sessions : l'une contenant l'heure et l'autre le nom de la page.

    A chaque changement de page tu exécutes un petit script qui fait la différence entre l'heure actuelle et celle en session, et enregistre pour la page donnée en session (si tu as besoin de cette finesse) l'écart.
    Ensuite tu rerenseignes les deux variables session.

    J'espere etre clair

    EDIT : owned
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par ratapapa
    Tu stockes ce dont tu as besoin dans deux sessions : l'une contenant l'heure et l'autre le nom de la page.

    A chaque changement de page tu exécutes un petit script qui fait la différence entre l'heure actuelle et celle en session, et enregistre pour la page donnée en session (si tu as besoin de cette finesse) l'écart.
    Ensuite tu rerenseignes les deux variables session.

    J'espere etre clair

    EDIT : owned


    Il faut le faire quand même
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Citation Envoyé par Amara


    Il faut le faire quand même
    Alors là CHAPEAU !
    Il fallait le faire ça !

    Mais oui !
    C'est ça qu'il faut que je fasse ! L'heure courante !

    Merci !
    Faut que je rallume mon cerveau moi !
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  10. #10
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    C'est une mauvaise idée de chercher à connaitre le temps entre deux page.


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `site_visite` (
    `visite_id` INT NOT NULL AUTO_INCREMENT ,
    `visite_date` DATETIME NOT NULL ,
    `visite_id_session` VARCHAR( 254 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
    `visite_login` VARCHAR( 254 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
    `visite_page` VARCHAR( 254 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
    PRIMARY KEY ( `visite_id` )
    ) CHARACTER SET utf8 COLLATE utf8_bin;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $sql = 'INSERT INTO `site_visite` ( `visite_id` , `visite_date` , `visite_id_session` , `visite_login` , `visite_page` )
                            VALUES ("", NOW( ) , "'.$session.'", "'.$_SESSION['loggin'].'login", "'.$_SERVER['REQUEST_URI'].'");';
    ?>

    Pour le temps entre chaque page, calcul le au moment des stats, page_suivante-page_précédente

  11. #11
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Bon, ça marche super le truc d'Amara et Ratapapa !

    Maintenant, en étoffant un peu tout ça, j'ai un module d'analyse super complet !

    Merci les gars !
    Je me rend compte que le sommeil ça joue beaucoup sur la réflexion je me repose maintenant ! j'ai bien compris la leçon !

    Merci de votre aide !
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

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

Discussions similaires

  1. Calcul simple sur une page: php ou js ?
    Par branlot83 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/10/2012, 13h43
  2. Décompte du temps passé sur une page
    Par PP(Team) dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/09/2011, 19h30
  3. Recuperer le temps passe sur une page.
    Par sacapuss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/01/2010, 19h20
  4. Savoir le temps passé sur une page avant de passer vers une autre page
    Par karimphp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/09/2007, 23h57
  5. Temps passé sur une page !!
    Par nizarsm dans le forum ASP
    Réponses: 4
    Dernier message: 30/06/2006, 21h42

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