Newsgroup: it.comp.www.php
Titolo: Timer PHP

Mi servirebbe realizzare un Timer in PHP per monitorare i tempi di alcune 
pagine del mio sito, ma trovo qualche difficoltà nella realizzazione.
Cortesemente chiedo a qualche Amico un aiuto a completare il listato che 
inserisco di seguito.
Grazie per la cortesia Pietro
<?php
$nowOre=0;
$nowMinuti=0;
$nowSecondi=0;
    if($nowSecondi>59);
{
$nowSecondi=0;
$nowMinuti++;
}
if($nowMinuti>59);
{
$nowOre++;
$nowMinuti=0;
}
echo $nowSecondi;
echo $nowMinuti;
echo $nowMinuti;
?> 

 Grazie per la cortesia Pietro
Non ho ben capito se devi misurare il tempo [1][2] oppure formattarlo e
stamparlo a video [3]
[1]: 
http://it.php.net/time
[2]: 
http://it.php.net/microtime
[3]: 
http://it.php.net/date
PS: ci sono ottimi esempi sul sito ;-)
Enrico

 ha scritto nel messaggio 
news:1234210321....@enrico-desktop.casa...


 pagina del sito rimane aperta come ad esempio nei contatori di visite.
Non puoi.
PHP e` lato server. Quando l'utente vede la pagina, lo script PHP e` gia` 
terminato.
Inoltre non c'e` modo di sapere, dal server, quando l'utente "cambia 
pagina", perche` HTTP e` stateless.
Puoi "risolvere" (tra virgolette perche` non e` garantito) impostando un 
javascript sull'evento onunload della pagina, che in qualche modo comunica 
al server che l'utente ha cambiato pagina.
Chiedi sul newsgroup di javascript.
Bye.


Puoi anche lasciare perdere tutto e leggere i log del webserver (anche
programmaticamente, se vuoi). C'è scritto quali pagine sono state
richieste, l'ora e da dove proviene la richiesta. Ovviamente se hai
dallo stesso utente un'entrata in pagina A alle 12:00 e una in pagina
B proveniente da A alle 12:02 la pagina A è probabilmente rimasta
aperta 2 minuti. In questo modo non puoi sapere quanto rimane aperta
l'ultima pagina, ma hey - per non scrivere nemmeno una riga di codice
mi sembra un buon risultato.

 un buon risultato.
E` vero, ma poi ti capita lo stronzo (io) che apre 3-4 pagine del tuo sito 
in altrettanti tab, e sembra che abbia letto ogni pagina per 5 secondi, 
mentre nei successivi 10-15 minuti io le sto leggendo una alla volta.
O altri stronzi (sempre io) che hanno un plugin per FF o una impostazione 
per altri browser che precaricano in cache le pagine linkate appartenenti 
allo stesso sito, e sembra che cambino pagina dopo 0.3 secondi. :)
La statistica e` una scienza imprecisa. Applicata al web e` piu` o meno a 
livello astrologia... :)
Bye.


Può essere, ma non lo dire a google - campa di questo ;)

 wrote:

Poiché, come detto, non necessariamente l'unload viene chiamato (ad
esempio cade la connessione all'utente o crasha il browser, o esplode
casa sua), una soluzione piu precisa potrebbe essere l'uso di un timer
js che richiami in background (ajax) il tuo script accumulatore..
vabè.. fantaphp :)
Ciauz

 aperto" niente
Che sia stato pensato originariamente per essere stateless non c'è
dubbio; che però dalla versione 1.1 hanno aggiunto "Connection: keep-
alive" che apre nuove forme di aggiramento del problema è un dato di
fatto. Esistono tecniche per tenere aperta la connessione per pushare
dati nel browser ed evitare polling. Queste si possono usare per i
fini richiesti dal poster originale.
Inutile o no poi, non sta a noi a giudicare penso.. se gli serve gli
serve :)
Easily
Gg

dati nel browser ed evitare polling.
multipart/x-mixed-* danno una serqua di problemi con proxy e vari
browser (uno specialmente, indovinate quale), purtroppo.
Sostanzialmente, l'insieme dei browser dove le tecniche furbe non
danno problemi e' paragonabile all'insieme dei browser dove basta
e avanza onUnload(), o almeno questo e' il mio forte sospetto.
Leonardo
-- 
Linten addie toorin addie,
Linten addie toorin ee,
Linten lowrin lowrin lowrin,
The barnyards of Delgaty


Ok, quello che qualche fantasioso chiama "comet", o qualcosa di
simile. Non c'è bisogno di tecnologie aliene o strani settaggi, è
banale. Solitamente non si usa php/apache ma java/tomcat per questo
scopo, ma solo perchè con questi è possibile sganciare il thread che
regge la connessione comet, evitando di intasare il pool. Comunque
personalemente l'ho implementato in php su apache, funziona ed è in
produzione (ovviamente con questi limiti, ovvero l'impossibilità di
creare più di un centinaio di comunicazioni di questo tipo in
parallelo, cosa che per esempio a me non serviva).
Per chi ci vuole provare do un indizio - niente "multipart/x-mixed-
quellocheè" o "keep_alive_quellochenonè", basta settare il Content-
Length alto sugli header http, fare padding all'inizio della
connessione e forzare la chiusura del socket (die()) dopo un tempo
variabile, prima che scadano i timeout da entrami i lati (20/30
secondi sono ragionevoli). Il browser non si lamenterà perchè il
comportamento è quello che avrebbe un server lento a mandare i dati
(che in fondo è proprio quello che sta succedendo).
Ciao!

(che in fondo è proprio quello che sta succedendo).
Non sono sicuro di aver capito. Se mandi un die() la connessione lato
PHP cade (rimane aperto il socket in caso di keep-alive) e tu non sai
per quanto tempo la pagina rimane aperta.
L'unico modo per saperlo e' fare in modo che, appunto, la connessione
non cada (cioe' venga interrotta solo dall'utente quando chiude), o -
in alternativa - che a causa di quella connessione venga generata una
qualche altra attivita', tipo il refresh di una web-crumb.
Tutti metodi (tranne il web-crumb) che vanno poco d'accordo con proxy
e simili; e il web-crumb richiede Javascript.
Almeno cosi' mi pare; poi, se mi sbaglio... meglio! :-)



Ok, ho cercato su google e non l'ho trovato. Che roba è?

Non so proprio cosa sia una web-crumb. Adesso cerco su google.
Beh, si scopre che non lo sapevo neanch'io :-)
Il termine esatto e' web bug.
http://en.wikipedia.org/wiki/Web_bug
Mi sono confuso con il termine "breadcrumb" che indica tutt'altra cosa.



Fico, non sapevo queste cose avessero un nome :) beh, buono a sapersi!
In ogni caso stiamo da capo a dodici - anche secondo la pagina di
wikipedia questi "trucchetti" sfruttano i log del webserver.
Secondo me questa è una riprova in più che l'unico approccio serio al
problema è quello statistico.