Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Posso sapere i visitatori che accedono o escono dal mio sito???

    Ciao a tutti....
    La domanda è la stessa dell'oggetto,c'è qualcuno che mi sà dare una risposta?Anche sapendolo tramite javascript,magari che manda ogni tot di tempo, una variabile booleana, al server così sò che è ancora sul mio sito....
    Grazie per qualunque interessamento....

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Solitamente si assegna ad ogni utente un id che si memorizza sul database assieme all'ora di accesso e nella $SESSION (basta idsession).
    Ad ogni pagina vista dall'utente si legge la variabile di sessione e si aggiorna l'ora dell'ultimo accesso sul db.

    Se l'ultimo accesso è avvenuto più di 3-5 min fa allora si considera l'utente non più connesso e si cancella il record

  3. #3
    La prima cosa da chiarire è che cosa davvero ti serve sapere: infatti, se sei interessato alla durata delle visite, tutti i sistemi che la misurano si basano sull'assunzione che tutte le richieste che un utente fa, distanziate nel tempo meno di un dato tot, facciano parte della stessa "sessione" di navigazione, che avrà quindi una durata pari alla differenza tra la prima e l'ultima volta che l'utente ha richiesto una pagina in quella "sessione"...

    Se invece, vuoi sapere se la pagina del tuo sito è ancora aperta del browser dell'utente, anche se è fermo su quella pagina da mezzora, allora di certo una semplice chiamata ajax che carichi un tuo php sul sito può bastarti per "pingare" il sito e mantenere viva la sessione dell'utente, ma in questo caso non capisco quale uso tu possa fare di un simile dato, visto che, appunto, l'utente potrebbe essersi semplicemente dimenticato aperto il browser...

    Quanto all'uscita dal sito , puoi provare con l'evento javascript "unload" dell'oggetto document, ma altrettanto non capisco cosa tu intenda misurare: il concetto di "uscita" da un sito web, se non stiamo parlando di un sito dotato di login e logout, ha poco senso, l'utente "esce" ogni volta che finisce di caricare una pagina, ovvero non appena ha finito di ricevere la pagina web la sua sessione comincia ad invecchiare, per poi morire il numero di minuti dopo a cui è impostata...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    Grazie mille Luke70,avevo pensato anch'io all'appggio sulla sessione,e aggiornamento nel db,ma mi serve per una chat,e quindi per i loggati in questo sito,la cosa deve essere quanto più precisa possibile,questo è quello che devo fare,una semplice chat ;-) quindi vista la situazione pensavo alla soluzione ajax di Shores,finchè l'utente è in questa pagina di questo sito,anche senza far niente e da mez'ora,sono apposto,per me è connesso ed in linea...Se questa cosa si può fare,sono apposto...Cosa mi dovrei vedere/studiare Shores per questo rimedio???
    Grazie ancora
    saluti

  5. #5
    Essenzialmente ti basta studiarti l'oggetto XMLHTTPrequest e la funzione SetTimeout di javascript, ma se vuoi un consiglio spassionato, scegliti una delle tante librerie javascript disponibili (personalmente preferisco jquery, ma in sostanza non ci sono poi tante differenze) e usala per fare le chiamate ajax, è molto più comodo che non dover usare direttamente XMLHTTPrequest.

    L'unico altro accorgimento, ricordati che se la url che carichi via ajax può essere sempre la stessa per un tot di volte, per essere certo che davvero venga caricata dal server e non dalla cache del browser devi aggiungerci un parametro casuale: per capirci, se la tua intenzione è di fare caricare ad ajax queste url:

    www.esempio.it/ping.php?chat=1
    www.esempio.it/ping.php?chat=1
    www.esempio.it/ping.php?chat=1
    www.esempio.it/ping.php?chat=1

    dovresti invece fare in modo che vengano chiamate:

    www.esempio.it/ping.php?chat=1&rand=16783456
    www.esempio.it/ping.php?chat=1&rand=87654832
    www.esempio.it/ping.php?chat=1&rand=89676735
    www.esempio.it/ping.php?chat=1&rand=56389268

    in cui rand è generato sempre casualmente, ed è così grande che è molto difficile che sia uguale!

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  6. #6
    Ciao Shores, ho trovato un codice ajax nel quale ho inserito un calcolo della data,che ogni 7 secondi manda ad una pagina (che ho chiamato server.php) tramite metodo get quello che voglio,ora quà mi sono incartato,perchè come parametro gli mando minuti e ed ora corrente,se è il primo accesso scrive in un database con una tabella: utenti_connessi ora corrente,ed in una colonna sempre dello stesso database chiamata conferma_presenza scrive tramite Update sempre la varibile che arriva in questa pagina(server.php) contenente nuovi minuti e secondi,ora in questa pagina c'è una select che individua l'id_utente più basso(sempre dalla tabella utenti_connessi) al quale dò il "privilegio"(ho fatto questo per non permettere a tutti gli utenti che caricano la pagina di cancellare utenti che non sono più presenti,così sicuro c'è un solo utente con id più basso che ha abilitato la parte di codice che cancella utenti non più presenti) di cancellare utenti con scritto nella tabella(utenti_connessi)ed aventi il campo conferma_presenza un orario inferiore a quello attuale,ovviamente li reperisco tramite l'id di sessione....Il problema del mio incartamento, dovuto all'orario,perchè prendo un orario dalla macchina attuale,e se l'utente ha un orario diverso,e già tagliato fuori dal database,e quindi non rientra nella select sulla tabella: utenti_connessi....Ora non è che non abbia valutato la tua dritta,è solo che è da 2-3 giorni che stò lavorando su questo codice,e vorrei portarlo alla fine,io riguardo al mio problema stavo pensando di far prelevare l'orario (sempre da javascript) da un'unica fonte,così da avere degli orari sincroni per tutti gli utenti che si connettono al sito....Che ne pensi,c'è una via d'uscita?Fammi sapere...grazie mille....
    saluti

  7. #7
    Scusa il ritardo ho risolto grazie mille....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.