Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/03/2007, 15h27   #1
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
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
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h37   #2
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
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.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h43   #3
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
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...
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h44   #4
Membre éclairé
 
Avatar de Space Cowboy
 
Inscription : avril 2005
Messages : 495
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 495
Points : 306
Points : 306
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.
Space Cowboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h49   #5
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
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
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h53   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h54   #7
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
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
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h55   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 17h00   #9
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
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
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 17h08   #10
Membre éclairé
 
Avatar de Space Cowboy
 
Inscription : avril 2005
Messages : 495
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 495
Points : 306
Points : 306
C'est une mauvaise idée de chercher à connaitre le temps entre deux page.


Code sql :
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 :
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
Space Cowboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 17h22   #11
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
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
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h01.


 
 
 
 
Partenaires

Hébergement Web