[PHP-JS] : fonction sur fermeture fenetre
Résolu
pilten
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
Ah_Kin Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Ah_Kin Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise PHP-MySQL pour une application intranet Simple.
Dans ma db, j'ai une table EMPLOYE dans laquelle je stocke la date et heure de début de connection , ainsi que la date et l'heure de fin de connection.
Aucun probleme pour le début de connection
Pour la fin de connection, j'execute une fonction PHP lorsque l'utilisateur clique sur un bouton LOGOFF
Par contre, j'aimerais stocker aussi l'heure de fin de connection lorsque l'utilisateur ferme son navigateur ...
J'ai déja essayé avec l'évenement body OnUnLoad ="mafonction". Cela fonctionne mais la fonction s'execute à chaque changement ou upload de page .. ce qui m'ennuie fortement.
je pense qu'il n'existe aucune méthode pour "capturer" un click sur la croix du navigateur .. Si seulement qqn avait une alternative, cela serait utile à des millions de développeurs beginners comme moi :)
Ma fonction est la suivante
function logoff( )
{
<?
$temps = date ( ..... );
UPDATE EMPLOYE SET end_Con = $temps ..........
?>
}
Pour info, je suis moi-meme surpris par le code PHP à l'intérieur d'une fonction JS mais ca marche !!!!!
Merci à tous .. mais je désespere ..
Si seulement BODY OnClose existait , ou si qqn l'avait développé !!
J'utilise PHP-MySQL pour une application intranet Simple.
Dans ma db, j'ai une table EMPLOYE dans laquelle je stocke la date et heure de début de connection , ainsi que la date et l'heure de fin de connection.
Aucun probleme pour le début de connection
Pour la fin de connection, j'execute une fonction PHP lorsque l'utilisateur clique sur un bouton LOGOFF
Par contre, j'aimerais stocker aussi l'heure de fin de connection lorsque l'utilisateur ferme son navigateur ...
J'ai déja essayé avec l'évenement body OnUnLoad ="mafonction". Cela fonctionne mais la fonction s'execute à chaque changement ou upload de page .. ce qui m'ennuie fortement.
je pense qu'il n'existe aucune méthode pour "capturer" un click sur la croix du navigateur .. Si seulement qqn avait une alternative, cela serait utile à des millions de développeurs beginners comme moi :)
Ma fonction est la suivante
function logoff( )
{
<?
$temps = date ( ..... );
UPDATE EMPLOYE SET end_Con = $temps ..........
?>
}
Pour info, je suis moi-meme surpris par le code PHP à l'intérieur d'une fonction JS mais ca marche !!!!!
Merci à tous .. mais je désespere ..
Si seulement BODY OnClose existait , ou si qqn l'avait développé !!
A voir également:
- [PHP-JS] : fonction sur fermeture fenetre
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Alert php ✓ - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
- Php alert - Forum PHP
4 réponses
Hum ... à froid comme ça je dirais que ce n'est pas possible, il faudrait exécuter une fonction sur le serveur en rappellant un script php.
Je suis étonné que le PHP dans la fonction JS marche d'ailleurs.
En ce qui me concerne, pour estimer la durée de navigation d'un internaute, j'utilise les sessions.
A la création de la session, je stocke l'heure dans une variable/table dite "départ" et n'y touche plus. Ensuite, à chaque nouveau chargement d'une page je stocke l'heure dans une autre variable/table. Ainsi lorsque l'utilisateur arrête de cliquer, je considère qu'il ne navigue plus et cette dernière variable contient la dernière heure connue d'activité. Le compteur repart à 0 à l'ouverture d'une nouvelle session.
Ca donne une idée approximative.
Après il reste la solution de remettre le compteur à 0 sans utiliser les sessions, en procédant de la même manière, mais en considérant par exemple qu'a delà de 10 minutes sans clic il s'agit d'une nouvelle navigation.
Je sais pas si je suis très clair :)
En tout cas si vous avez une meilleure solution je suis preneur ^^
Ben
Je suis étonné que le PHP dans la fonction JS marche d'ailleurs.
En ce qui me concerne, pour estimer la durée de navigation d'un internaute, j'utilise les sessions.
A la création de la session, je stocke l'heure dans une variable/table dite "départ" et n'y touche plus. Ensuite, à chaque nouveau chargement d'une page je stocke l'heure dans une autre variable/table. Ainsi lorsque l'utilisateur arrête de cliquer, je considère qu'il ne navigue plus et cette dernière variable contient la dernière heure connue d'activité. Le compteur repart à 0 à l'ouverture d'une nouvelle session.
Ca donne une idée approximative.
Après il reste la solution de remettre le compteur à 0 sans utiliser les sessions, en procédant de la même manière, mais en considérant par exemple qu'a delà de 10 minutes sans clic il s'agit d'une nouvelle navigation.
Je sais pas si je suis très clair :)
En tout cas si vous avez une meilleure solution je suis preneur ^^
Ben
Oui , merci à tous
J'ai trouvé la solution
il faut simplement scinder l'application globale en deux frames
La frame de droit affichera normalement le site
La frame de gauche (1cm) est suffisant, n'affichera rien , mais elle sera affichée en permanence. Cette page ne sera jamais modifiée, jamais reloadée
On peut donc lui associer l'évenement suivant
<BODY OnUnLoad = "javascript:mafonction();">
l'évenement OnUnLoad ne s'effectuera UNIQUEMENT qu'en cas de fermeture de la page
Dans ce cas , ma fonction d'update de la table sera executée
Si question, je suis la ..
bonne soirée
pierre
J'ai trouvé la solution
il faut simplement scinder l'application globale en deux frames
La frame de droit affichera normalement le site
La frame de gauche (1cm) est suffisant, n'affichera rien , mais elle sera affichée en permanence. Cette page ne sera jamais modifiée, jamais reloadée
On peut donc lui associer l'évenement suivant
<BODY OnUnLoad = "javascript:mafonction();">
l'évenement OnUnLoad ne s'effectuera UNIQUEMENT qu'en cas de fermeture de la page
Dans ce cas , ma fonction d'update de la table sera executée
Si question, je suis la ..
bonne soirée
pierre