Temps passé sur un site + acualisation BDD

Temps passé sur un site + acualisation BDD - HTML/CSS - Programmation

Marsh Posté le 19-08-2002 à 12:13:49    

Voila mon problème. Je souhaite que le temps de visite d'un visiteur (préalablement identifié) d'un site particulier (dont le lien figure sur une de mes pages) puisse être enregistré dans une base de donnée. A priori, il me faut 2 frames : une 1ère invisible qui se charge du compteur temps en javascript et l'autre qui affiche le site visité. Est-ce que quelqu'un pourrait m'aider car je ne voit pas comment procéder et comment pouvoir actualiser ma base de donnée au moment où le visiteur ferme la page.
 
Merci beaucoup !


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 12:13:49   

Reply

Marsh Posté le 19-08-2002 à 12:19:27    

au moment ou le visiteur ferme la page ?
 
c possible si tu mets un bouton de deconnexion je presume....et donc au moment de la deconnex tu fais une diff du temps ou il s est logge et celui ou il se delogge
Je ne vois pas d autre soluce
 
Dsl un peu noob sur les bords alors j essaye d aider au mieux


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 19-08-2002 à 12:30:05    

non pas besoin, il y a une fonction redirect() qui redirige vers une page PHP lorsque le visiteur quitte la page. Cette fonction est lancée grace à l'évènement onUnload de javascript.


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 12:35:57    

Voila le procédé (mais tout est théorique, je sais pas mettre en pratique) :
 
Le visiteur s'est identifié. Quand il clique sur un lien publicitaire de mon site, une nouvelle page doit s'ouvrir (celle contenant les 2 frames) avec transmission en paramètres dans l'url l'identifiant du visiteur et le numéro du lien. Le script compteur de temps est lancé avec l'ouverture de la page (contenu dans une frame invisible) et lorsque la page est fermée (évènement onUnload), un script PHP doit pouvoir actualiser la base de donnée avec l'id du visiteur, le numéro du lien et le temps passé. Voilà ce que j'aimerais faire mais je ne sais pas !
 
Mais j'ai un déjà un bout de code que je vais poster pour que ce soit plus clair.


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 12:43:14    

Voilà le squelette de code :
 

Code :
  1. <html>
  2. <head>
  3. <title></title>
  4. <script language="javascript">
  5. var Temps=0
  6. var tmp=0
  7. n = (document.all) ? false : true;
  8. function getSecs()
  9. {
  10. Temps = Temps+1
  11. window.setTimeout('getSecs()',1000);
  12. }
  13. function redirect()
  14. {
  15. // dans cette fonction on transmet au script PHP l'id du  
  16. // visiteur, le code de la pub et la variable Temps  
  17. // window.open('compteur_ok.php')
  18. }
  19. function stop()
  20. {
  21. tmp=Temps;
  22. }
  23. function restart()
  24. {
  25. Temps=tmp;
  26. }
  27. </script>
  28. </head>
  29. <frameset rows="250,*" frameborder="5" onBlur="stop()" onFocus="restart()" onUnload="redirect()" onLoad="window.setTimeout('getSecs()',1000" )>
  30. <frame scrolling="no" noresize name="top">
  31. <frame name="principal" src=" ici le lien publicitaire " target="principal">
  32. <noframes>
  33. <body>
  34. </body>
  35. </noframes>
  36. </frameset>
  37. </html>


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 12:56:11    

Voilà un petit organigramme de ce que je veux faire :
 
1) le visiteur d'identifie
2) il clique sur un lien publicitaire
3) Une nouvelle page s'ouvre (avec transfert par l'url de l'id visiteur et code pub)incluant 2 frames : le compteur temps et le lien publicitaire
4) le visiteur ferme la page
5) dès fermeture, l'évènement OnUnload déclenche un script qui actualise la base de donnée (avec transfert de l'id visiteur, le code pub et le temps passé sur le site). Si ce délai est supérieur à une minute, un champ booléen de ma bdd est mis à 1.
 
Toute aide est la bienvenue !
             


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 12:56:50    

Ouais donc tu veux juste le code php pour l insertion dans la base de donnees ?
 
Mais dis moi t sur que ca marche tes fonctions en js ?
Ca compte bien le temps ?
 
sinon il suffit de faire dans le script de reception des parametres (par url je presume ), un petit bout de code pour recuperer les valeurs de chaques params et faire l insert dans la bdd.
 
Dsl mais meme un petit explique g du mal a piger tout ce que tu veux.
Mais je pense que c pareil pour tout le monde dans chaque topic ;)


Message édité par mkracing66 le 19-08-2002 à 12:57:04

---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 19-08-2002 à 13:05:03    

En fait, pour être sur que mes scripts fonctionnent, je voudrais pouvoir afficher le temps dans ma première frame mais je sais pas comment on fait ? Mais c juste pour vérifier que ça marche


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 13:08:53    

J ai des connaissances plus que limite sur les frames et sur le javascript mais je me demande comment ton script du calcul de seconde fonctionne....
Il est lance a l upload tu ajoute une seconde jusque la ok et tu kill la fenetre au bout de 1s c ca je crois mais c execute qu une fois ca alors comment il s incremente ton compteur :??:
 


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 19-08-2002 à 13:11:56    

je suis un peu paume dans ton js je te l avoue arf ja vais pas vu le onfocus , le restart etc....mais ca me parait bien complique...
 
Pk tu ne recup pas l heure actuel au moment de l ouverture du lien, une recup au moment de la fermeture, la redirection et enfin l insertion de la diff dans la bdd ?


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 19-08-2002 à 13:11:56   

Reply

Marsh Posté le 19-08-2002 à 13:23:51    

MkRacing66 a écrit a écrit :

J ai des connaissances plus que limite sur les frames et sur le javascript mais je me demande comment ton script du calcul de seconde fonctionne....
Il est lance a l upload tu ajoute une seconde jusque la ok et tu kill la fenetre au bout de 1s c ca je crois mais c execute qu une fois ca alors comment il s incremente ton compteur :??:
 
 




 
avec la fonction getSecs() et l'increment Temps=Temps+1


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 13:25:56    

MkRacing66 a écrit a écrit :

Pk tu ne recup pas l heure actuel au moment de l ouverture du lien, une recup au moment de la fermeture, la redirection et enfin l insertion de la diff dans la bdd ?




Parce que si le visiteur laisse la page ouverte mais vas surfer ailleurs, le temps va continuer de tourner alors qu'il ne sera pas effectivement sur le site publicitaire  :)


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 13:34:17    

oui mais ton getsec() il est declenche a l unload mais t bien sur qu il est update a chaque fois ?
Ton setimeout te permet bien de rappeler ta fonction tu es sur de ca.....
 
Parce que sinon dans l appel du script il t tout a fait possible de passer tes params par l url, ensuite tu fais un parse_str de ton url pour recuperer les valeurs associees a chaque variable et tu fais l insert dans ta bdd ou le traitement que tu voulais avec le temps sup a 1min...
 
Desole je ne vois pas ce que je pourrais te dire de plus a moins que tu veuille du code php plus detaille ?
 


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 19-08-2002 à 13:47:03    

Ok, bon oublions mon code.
La page principale où le visiteur cliques sur le lien pub est déjà en PHP donc, je récupères les valeurs par l'url. Mais après, je sais pas comment faire !
As-tu un script plus simple ?


---------------
Tout vendre, acheter, échanger en normandie : http://www.webannonces-normandes.com
Reply

Marsh Posté le 19-08-2002 à 14:04:47    

Bon voila ce que je te propose...
 

Code :
  1. <?
  2. //recup url (!!! A VERIFIER !!!)
  3. $url= $_SERVEUR["REQUEST_URI"]; //a verifie je ne suis pas du tout sur...
  4. //recuperation des couples param=valeurs (comme dans l url)
  5. parse_str($url);
  6. //Connection a la bdd (valeurs a remplacer par tes params de mysql)
  7. @mysql_connect($dbhost,$dbuser,$dbpasswd) or die("Impossible de se connecter à la base de données" );
  8. @mysql_select_db($dbname) or die("base de donnée inexistante" );
  9. //Construction de la requete
  10. $requete = "INSERT $nomtable(champ1,champ2,...) VALUES ('valeur1','valeur2',...)";
  11. //insertion dans la bdd
  12. $resultat= mysql_query($requete) or die("Insertion dans la bdd impossible Requete executee : $requete" );
  13. ?>


 
Bon voila
A verifier  
peux rien faire de plus bye ;)
 
 


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed