Visualizzazione dei risultati da 1 a 7 su 7

Discussione: utenti collegati

  1. #1

    utenti collegati

    Ciao a tutti!
    Ho un sito con un sistema di registrazione. Per ogni utente viene registrato in un database il nome, la password e l'e-mail. Il sito comprende anche una semlice chat, vorrei che fossero visualizzabili gli utenti connessi: non il numero, ma proprio i loro nomi, un po' come avviene in questo forum...
    Ho cercato ovunque, ho trovato diverse soluzioni, ma a me ne interessa una in PHP e basta.
    Qualcuno sa aiutarmi?
    Grazie in anticipo!

  2. #2
    Questo sistema interessa anche a me...

    IO avrei pensato (ma non ancora sperimentato) di fare un controllo di ore e minuti...
    Quando un utente di logga viene uppato un campo del database (logintempo) tramite (UPDATE) dell'ora attuale poi tramite while faccio una lista di ore e minuti minimi e una di ore e minuti massimi e poi controllo quei utenti che rispecchiano quella caratteristica creando un array: mysql_fetch_array() con l'elenco degli username degli utenti e stampandolo dove si vuole...

    Questo però nn so ancora se funziona attendo anche io una risposta.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    in versione MOLTO semplificata:

    Codice PHP:
    // Tempo limite che vuoi che vengano visualizzati gli utenti
    $time 300# 5 minuti

    // Tempo attuale
    $time_now time();

    /*
     * Vostro sistema per controlla se un utente è loggato ( che io non conosco )
     * facciamo finta che restituisce l'id e il nickname
     */

    // Elimina tutti gli utenti che non si connettono da 5 minuti
    $q mysql_query("DELETE FROM utenti_online WHERE tempo_online < $time_now AND id_utente = $id);

    // Controlla se esiste un record nella tabella utenti_online
    $q mysql_query("SELECT 1 FROM utenti_online WHERE id_utente = $id AND nick_utente = '$nick'");

    // Se esiste, aggiorna la tabella e basta
    if ( mysql_num_rows$q ) == )
    {
         
    mysql_query("UPDATE utenti_online SET tempo_online = $time WHERE id_utente = $id AND nick_utente = '$nick'");
    }

    // Altrimenti aggiunge un nuovo record
    else
    {
         
    mysql_query("INSERT INTO utenti_online ( id_utente , nick_utente , tempo_online ) VALUES ( $id , '$nick' , $time )");
    }

    // Seleziona tutti gli utenti online
    $lista mysql_query("SELECT id,nick FROM utente_online");

    print 
    'Attualmente sono connessi: ';

    // Scorre gli utenti online
    while ( $row mysql_fetch_array$lista ) )
    {
       print 
    " [ [url='profilo.php?id=$row[id]']$row[nick][/url] ] ";


  4. #4
    Ok grazie...
    allora se un untente è loggato: CONTROLLO SESSIONE APERTA

    Codice PHP:
    if($_SESSION['logged_in'] == 1) {
    $username $_SESSION['username'];

    ... 
    RESTO DEL CODICE DELLO SCRIPT


    Così devi creare un'altra tabella nel database e allora quando un utente si logga dovrà eseguire una query che inserirà il tempo di login nella tabella utenti_online.... giusto?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    beh il controllo dovrebbe essere fatto continuamente ( per aggiornare le date etc... ), ovvero ad ogni refresh.

  6. #6
    Grazie mille! Era proprio ciò che stavo cercando!

  7. #7
    Allora sono riuscito a fare questo:
    1) Quando un utente si logga inserisce nella tabella il tempo del login
    2) Visualizza l'elenco dei utenti online in quei 5 minuti passati i quali li cancella

    Però non riesco ad implementare la funziona che ad ogni caricamento pag o ad ogni attività sul server mi aggiorni il campo...

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.