NGI.Home > Forum
  HOME  EOLO WIRELESS  FORMULA ADSL  SQUILLO VOIP
   
   
WEBMAIL  CORPORATE
   
 
  > Register  
  > FAQ  
  > Members List  
 
  > Calendar  
  > Today's Posts  
   
 

Go Back   NGI Forum > Tech & Tech > Developer's Zone

Reply
 
Thread Tools Rate Thread
Old 19th February 2006, 12:29   #1
zedocrash
Registered User
 
Join Date: Jun 2005
Posts: 20
php&mysql - calcolo del tempo trascorso sul sito

Dunque...ovviamente lo vorrei fare solo per gli utenti iscritti, dato che per gli altri mi sembra un tantino più difficile

Vorrei registrare il tempo totale che un utente è stato sul sito, in modo da renderlo poi visibile nel profilo utente, solo che non so come fare...pensavo di fare un timestamp dell'ora in cui l'utente si logga nel sito e trasmetterla a database, poi di fare un timestamp dell'ora in cui esce e di sottrarre i due in modo da ottenere il tempo da sommare poi al tempo che c'era già...
solo che mi pare che col timestamp non si possa inserire solo l'ora ma solo la data, quindi...qualche idea?
zedocrash is offline   Reply With Quote
Old 19th February 2006, 13:07   #2
[NiGhTmArE]
Zappel
 
[NiGhTmArE]'s Avatar
 
Join Date: Jan 2000
Location: Tivoli / Campobasso
Posts: 42,825
Send a message via ICQ to [NiGhTmArE]
time() ti restituisce la data in formato unicode, giornmo mese anno ora minuti secondo e forse anche qualcosa di più

più che altro io non saprei come vedere quando un utente esce, fine sessione? mumble
__________________
instantempo
Giochi Flash | Userbars Maker Musinvi: Video Musicali Fattori Arcani
M. ♕ Queen of Agorà ♕ G.
Frappr is dead
[NiGhTmArE] is online now   Reply With Quote
Old 19th February 2006, 13:33   #3
Darklord
lupetto supremo
 
Darklord's Avatar
 
Join Date: Mar 1999
Location: Bari
Posts: 13,005
Send a message via ICQ to Darklord Send a message via MSN to Darklord Send a message via Skype™ to Darklord
se l'utente non fa il logout bisogna aspettare la scadenza della sessione, oppure modificare una entry nel database ogni volta che una sessione non viene refreshata per esempio dopo 5 minuti. Volendo si potrebbe integrare lo script con AJAX sfruttando l'oggetto XMLhttpRequest.
__________________
Python-foo Black Belt
NGI Forum
» Tech & Tech » Developer's Zone

Last edited by Darklord; 19th February 2006 at 13:34.
Darklord is offline   Reply With Quote
Old 19th February 2006, 14:11   #4
zedocrash
Registered User
 
Join Date: Jun 2005
Posts: 20
Quote:
Originally Posted by [NiGhTmArE]
time() ti restituisce la data in formato unicode, giornmo mese anno ora minuti secondo e forse anche qualcosa di più
ok, ma come separo l'ora dalla data?

Quote:
Originally Posted by Darklord
Volendo si potrebbe integrare lo script con AJAX sfruttando l'oggetto XMLhttpRequest.
cioè?
zedocrash is offline   Reply With Quote
Old 19th February 2006, 16:13   #5
Darklord
lupetto supremo
 
Darklord's Avatar
 
Join Date: Mar 1999
Location: Bari
Posts: 13,005
Send a message via ICQ to Darklord Send a message via MSN to Darklord Send a message via Skype™ to Darklord
$ora = date("H:m:s", time());

Per quanto riguarda l'oggetto XMLhttpRequest, permette di aggiornare dinamicamente una pagina web senza ricaricare l'intera pagina.
Ti posto un semplice tutorial su una possibile applicazione.
http://www.webpasties.com/xmlHttpRequest/
__________________
Python-foo Black Belt
NGI Forum
» Tech & Tech » Developer's Zone
Darklord is offline   Reply With Quote
Old 19th February 2006, 16:32   #6
Nemo
~~~~~
 
Nemo's Avatar
 
Join Date: Feb 1999
Location: /index.php
Posts: 17,760
Quote:
Originally Posted by zedocrash
ok, ma come separo l'ora dalla data?
non penso tu debba ragionarei in questi termini.

time() restituisce il numero dei secondi trascorsi da gennaio 1970 mi pare, come forse già sai. è un numero tipo 1236517623.

te devi lavorare con questo numero, non devi tenere nel database giorni, mesi etc, ma tieni la somma/differenza tra time() preso in tempi diversi, nei modi che preferisci (logout/sessone scaduta etc)

$secondi = time();

// .. fai delle cose...

$secondi_trascorsi = time() - $secondi;

vabbè più precisamente nel db terrai il totale dei secondi trascorsi, al quale ogni volta ci sommi i secondi ottenuti con il calcolo ch vuoi te durante la sessione tra login e logout.

poi il problema di visualizzarlo in termini più umani è l'ultimo dei tuoi problemi e lo puoi fare come ha detto Darkord formattando una stringa che prende come argomento questo totale di secondi:

date("H:m:s", $totale_secondi_da_database);

-------

buona l'idea di XHTMLquallarobalì, potresti allora mettere una funzione Javascript invocata quando la pagina viene chiusa, tipo:

<body onunload="user_logout()">

non ricordo se era onunload oppure onclose per gestire l'evento di quando uno chiude una pagina.
__________________
« Scimmia Blog » posta la tua scimmia | Better Call Saul! | Shiiiiiiiiiiiiiiiiiiiiiiiieeeet | 50 euro son 50 euro!

Last edited by Nemo; 19th February 2006 at 16:36.
Nemo is offline   Reply With Quote
Old 19th February 2006, 17:02   #7
zedocrash
Registered User
 
Join Date: Jun 2005
Posts: 20
perfetto, tutto chiaro, grazie mille
zedocrash is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 14:19.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998-2014 by NGI SpA