Page 1 sur 1

onUnload + executer php dans iframe

Posté : 12 févr. 2005, 13:39
par Invité
bonjour,

je voudrais enregistrer dans une base de données combien de temps les visiteurs d'un site y sont restés

donc j'ai un compteur en js et quand le visiteur quitte la page (onUpload) ça lance un script php dans une iframe "remotescripting" invisible qui entre le temps dans le base

si je rajoute au même moment un message d'alerte :
> ça marche(comme si ça avait donné le temps au script php d'être exécuté ?)

sans le message d'alerte :
> rien ne ce passe

comment faire pour que le script soit executé sans qu'il y est de message d'alerte?

merci si qq'un a une idée

le code :

Code : Tout sélectionner

var Start = new Date(); var heuredebut = Start.getTime(); function sejour() { var fin = new Date(); var heurefin = fin.getTime(); var sejour = Math.floor((heurefin - heuredebut) / 1000); document.compteur.temps.value = sejour; document.compteur.submit(); //alert(sejour);//avec ça, ça marche } <body onUnload="sejour()"> <form name="compteur" action="compteur.php" method="POST" target="remotescripting"> <input type="text" name="temps" style="visibility:hidden"> </form> <iframe name="remotescripting" style='visibility:hidden'> </iframe>

Posté : 12 févr. 2005, 15:52
par cerber
j'ai pas vraiment le temps de tester, mais je soupconne que ce soit du a ton formulaire
=> ma proposition charge une page avec une url du style page.php?temps=XXX
tu peux le faire dans la page courante mais comme elle se ferme il risque de refuser
tu peux aussi ouvrir une popup mais tu risque de te prendre un anti-popup (ils aiment pas les popup qui s'ouvrent à la fermeture)
autre solution charger une fausse image:

Code : Tout sélectionner

<SCRIPT language=javascript> function Rollover(img) { img = new Image(); img.src="page.php?temps=XXX"; } </SCRIPT>

Posté : 26 nov. 2008, 15:19
par simoh
Je pense qu'il est nettement judicieux d'utiliser la technologie Ajax
pour ce fait tu pourra executer du code php, puis assigner la responseText à un div via son id ;-)