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

    mantenere in esecuzione uno script

    è possibile mantenere in esecuzione uno script php sul server anche se non viene richiamato?
    vi faccio un esempio
    nel mio caso dopo il login al mio sito
    la pagina profilo.html fara una chiamata ajax a server.php
    che inserirà gli utenti tra gli utenti online
    ora il problema è che una volta che l'utente esce dal sito la pagina profilo.html non farà più chiamate ajax a server.php quindi server.php non verra più eseguito. io vorrei fare in modo che anche se l'utente abbandona profilo.html , server.php resti ancora attivo in modo da inserire il vecchio utente tra gli utenti ofline.come si fa??????
    GRAZIE MILLE PER LA PAZIENZA

  2. #2
    Perché sprecare così tante risorse e fare quest'obbrobrio quando ti basta fare:
    se l'utente è loggato lo metti nella lista delle persone online altrimenti lo metti tra gli offline

  3. #3
    si ma secondo il tuo ragionamento un utente loggato una volta uscito risulta ancora loggato perche precedentemente si era loggato. se l'utente esce effettuando il logout è tutto ok ma se non lo facesse sorgerebbe il problema

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Puoi memorizzare in un DB la coppia timestamp, utente ad ogni azione. Quindi, fissato un un periodo per il timeout, l'utente è da considerare offline se non ha compiuto altre azioni ossia l'ultimo timestamp è inferiore al timestamp attuale meno il tempo di timeout.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  5. #5
    potresti farmi un esempio grazie

  6. #6
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Di norma un utente loggato lo segnali in una varaibile di sessione ($_SESSION). Essendo la sessione basata su un coockie ed un file memorizzato sul server, resta di norma viva fino alla chiusura del browser.

    Quello che mi pare di capire è che vuoi far vedere ad altri quali sono gli utenti loggati al sistema, quindi se un utente lascia il sistema gli altri se ne accorgono. Come avviene in questo forum.

    A tal fine, quando un utente invoca una pagina, o se utilizzi ajax per fare chiamata asincrone, il tuo script dovrebbe fare
    codice:
    timeout = 300
    Se utente loggato{
         $esito_update = Fai l'update nella tabella (timestamp,id utente) con id utente loggato
         se(!$esito_update){
              Fai la insert della coppia (timestamp_attuale,id utente)
         }
         min_timestamp = timestamp_attuale - timeout;
         Fai delete dei record in tabella (timestamp,id utente) in cui timestamp < min_timestamp
         Ho in tabella l'elenco degli utenti teoricamente online
    }
    In questo modo un utente che agiorni la pagina (sincono o asincrono) può ricevere l'elenco aggiornato degli utenti collegati.

    In realtà un utente potrebbe essere supposto scollegato perchè inattivo da 5 minuti mentre invece è lì che babba sulla pagina. Se però stai utilizzando ajax per aggiornamenti asincroni al più ogni 4 minuti in background, questo pericolo non esiste poichè il permanere sulla pagina provoca inconsapevolmente il refresh del proprio timestamp.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

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.