Newsgroup: it.comp.www.php
Titolo: Controllo degli utenti presenti sul sito

Salve,
la domanda č:
"Come riesco a sapere quanti utenti sono presenti
sul mio sito in un certo momento??"
Quando si legge per esempio:
"Ci sono 4 visitatori e 2 utenti on-line"
si sfrutta un trucco particolare o c'č una funzione apposta?
Ovviamente, per gli utenti registrati immagino che basti
consultare il db, ma per i visitatori occasionali come si fa?
Spero di essermi spiegato.
Grazie
Paolo

 ha scritto nel messaggio
news:krOXc.1315$LV3....@nntpserver.swip.net...


BeJo wrote:
| Cerca qualcosa sulle SESSIONI ed avrai la risposta.
Ciao, l'argomento interessa anche a me, se hai già provato a fare una
cosa del genere potresti essere più "preciso"? :-) almeno per sapere
"cosa" guardare delle sessioni! è da un po' che utilizzo Php, ma forse
per distrazione non ho mai trovato qualcosa per tracciare gli utenti
presenti ... (poco impegno?:-)
Grazie!
Ciao
-- 
..::[ Panz ]::..
-----------------------
per rispondere riscrivi in numeri la mia eMail!

 
Fai aprire una sessione per ogni visitatore che arriva sul sito, predisponi un 
file di testo in cui inserire "un contatore", per ogni sessione che apri 
aggiungi 1, per ogni sessione che si chiude togli uno.
Questo in modo molto schematico ed elementare, ma ti consiglio di cercare script 
gia' fatti e guardare i sorgenti.
Ciao
--
Danilo

 ha scritto nel messaggio
news:dWXXc.160692$OR2.7...@news3.tin.it...


P.o.l wrote:
| Ok, grazie per il suggerimento, l'idea è buona,
| ma non riesco a capire come sapere quando uno esce dal sito,
| il file di sessione non cambia, non si cancella, e io non
| posso chidere a ogni utente non registrato di cliccare
| su un bottone per confermare la sua uscita!!
| Proprio non capisco ....
Ciao, l'idea che mi è venuta in questi 30uS è di settare la funzione
(non ricordo adesso il nome) che viene richiamata alla fine di ogni
script eseguito, con questa (associata ad un DB) controlli che:
if($_SESSION_ID in Database
{   aggiorna time di presenza della sezione nel Database
    $sql = 'UPDATE utenti_in SET time = now() WHERE session_id =
'.$_SESSION_ID;
}
Quando poi controlli gli utenti nel DB cerchi quelli con tempo di
attività minore di $TOT e elimini quelli "inattivi da troppo tempo"
ovviamente i problemi sono da associare al $TOT: chi stabilisce il tempo
di attività di un utente?
Comunque questa è l'idea che mi è balenata in testa in questi 30uS
mentre leggevo il tuo post ... ma visto che non sto implementando niente
di simile (altro da fare n.d.r.) lascio a voi la valutazione dell'idea!
:-D
Ciao!


L'idea di settare un tempo di inattività l'avevo pensata anch'io,
ma come hai detto anche tu è molto indicativo e impreciso,
io pensavo ci fosse un procedimento che fornisse dati piu' accurati,
in ogni modo grazie a tutti per le loro idee.
Paolo

 ha scritto nel messaggio
news:rB1Yc.1419$LV3....@nntpserver.swip.net...


>
IMHO dal punto di vista del server non c'e' modo di essere più accurati 
di come ha proposto ..::[ Panz ]::... Ovviamente potremmo implementare 
un session handler in modo da sfruttare la nascita e la morte delle 
sessioni lato server, ma una sessione può risultare attiva lato server 
anche se sul client abbiamo tirato una martellata (ricordiamo che HTTP è 
un protocollo stateless).
Ci potrebbero essere altre strade, ma per un semplice contatore 
statistico penso non valga la pena:
1) Impostare un tempo di refresh delle pagine stretto (in questo modo 
aumentiamo anche gli hit al nostro sito... e vaiiiiii! )
2) Come variante della precedente mettere un frame nascosto con un tempo 
di refresh basso in modo che ogni tot (es. 20 sec) dice al nostro server 
che è ancora lì e non ha preso martellate :-P
3) Un applet che instaura una connessione TCP permanente con un demone 
che si trova sul nostro server (casini sui proxy e sui firewall)
Ciao.
-- 
-Ema-

Se usi un db mysql potresti inserire i dati in una tabella ossia indirizzo
IP e timestamp.
Poi richiamare i dati limitandoli agli indirizzi IP singoli (select
distinct), e ad un valore di time compreso tra time() e time()-120 cosě da
avere in tempo reale gli ip unici che navigano all'interno del sito
nell'arco di tempo ragionevole di 2 minuti.
Comunque sappi che non č possibile determinare con precisione il numero di
utenti presenti su un determinato sito.
E' possibile conoscere il numero di connessioni tramite un netstat. In
questo caso dovrai utilizzare (se permessa dal server admin) una funzione
tipo system() o exec(), e filtrare dai dati di output il numero delle
connessioni http
Francesco Duca
http://www.goldenweb.it

Ok, penso proprio che faro' come hai detto tu,
magari aggiungendo una funzione che controlla
l'esistenza di vecchie sessioni e poi le cancella
(se no rischio di intasare il db).
Grazie a tutti
Paolo


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

Sei stato piu' che chiaro, direi limpido !!!
Cmq ho gią iniziato a crearmi una funzioncina apposta.
Grazie 1000
Paolo
PS
E' vera sta cosa del "Butirrospermum Parkii" ??


 E' vera sta cosa del "Butirrospermum Parkii" ??
A me dicevano di si ... ecco spiegato perchè alle ragazze il più delle
volte piace "mangiarlo" il labello più che spalmarselo sulle labbra!
:-))


E' vera sta cosa del "Butirrospermum Parkii" ??
Ma scherzi? E' una delle gloriose uscite del grande GMER: siccome ci
ho riso dieci minuti quando l'ho letta, gli ho dedicato una sign.
