-
Body on Unload
Bonjour,
J’ai un petit souci auquel je ne trouve pas de solution : J’ai un script qui fonctionne apparemment avec certains navigateurs, et pas avec d’autres : L’idée, c’est que une page "accueil.php" reçoit les internautes, et au moment du chargement, elle contient un script php qui crée un répertoire temporaire (oui oui, je suis dans le forum javascript je sais). Dans la partie head, j’ai le script suivant :
<code>
function fin_session()
{
window.open('mafindesession.php?mavar=<? echo $mavar ?>&mavar=<? echo $mavar1 ?>&mavar2=<? echo $mavar2 ?>','','toolbar=no,menubar=no,location=no,height=1,width=1, alwaysLowered=1');
}
</code>
La partie body :
<code>
<BODY onunload="fin_session()";>
</code>
A la fermeture de la page "accueil.php", ça appelle une nouvelle page "mafindesession.php" qui doit détruire les répertoires temporaires si les variables contiennent une valeur. Chez moi (sous explorer et mozilla, les dernières versions) ça marche. Apparemment je constate que certains navigateurs n’exécutent pas le script.
Auriez-vous une conseil ?
Olé
-
Sais-tu que le onunload va être exécuté à chaque changement de page ?
De plus, les utilisateurs ayant désactivé JavaScript n'auront pas leur répertoire temporaire détruit. Sans oublier non plus qu'un navigateur ça peut planter et donc se fermer sans exécuter ton script.
Donc je ne pense pas que ça soit la meilleur solution que de laisser javascript s'occuper de la fin de session.
-
Body on Unload
Bonjour et merci pour la réponse.
C'est vrai que c'est vraiment pas une bonne solution d'utiliser javascript pour faire ça.
Mais l'histoire, c'est que je dois déclencher une action qui va détruire ce répertoire temporaire une fois qu'il a été téléchargé, et la seule manière que j'ai trouvé de détecter la fin du téléchargement, c'est de dire à l'internaute de ne pas fermer la fenêtre qui contient le body unload, avant la fin du téléchargement..... j'ai pas trouvé de meilleure solution, disons que ça m'assure la destruction du répertoire dans environ 70% des cas... Mais si une autre solution existe... je serais très heureuse d'être mise sur la piste. Y'en aurait-il une?
Merci d'avance
Olé.
-
Moi je te conseillerais de laisser ce répertoire temporaire pour une durée déterminée.
Par exemple si tu estime qu'en une heure 99% des gens auront eut le temps de télécharger ce répertoire, alors tu peux avoir un script php qui s'exécute periodiquement (tous les quart d'heure par exemple) et qui efface tous les répertoirs qui ont été créés il y a plus d'une heure.
-
voui, estimer un délai à l'arrache, dans ce cas, c'est moins grave que pour un chat php par exemple;
-
Body on Unload
Bonjour et merci pour la réponse.
En fait je savais pas que c'est possible de déclencher un script php sans lancer une page, étant donné que le php est interprété au chargement d'une page.. ou je me trompe? C'est une bonne piste en tout cas. Si quelqu'un peut m'en dire un peu plus sur la manière d'appeler le script, à quelle action il devrait se déclencher par exemple... ça m'aiderait.
Merci!
Olé.