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

    [php]lista degli utenti connessi senza db

    Ciao a tutti!
    Avrei bisogno, nel mio sito, di poter visualizzare la lista degli utenti connessi.
    Il mio database, però accetta solo fino a 3000 queries all'ora, che sono già abbondantemente utilizzate per il forum e la chat... Ho trovato su questo forum alcuni modi pr visualizzare la lista degli utenti connessi, ma tutti richiedono l'utilizzo di molte queries, che io non posso permettermi di usare. In definitiva vorrei sapere se esiste un modo di realizzare questo sistema con i file di testo, o al limite con una sola query per ogni controllo.
    Grazie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    penso non si possa fare senza db, se hai un db.

  3. #3
    Grazie della risposta, comunque sono appena riuscito a creare un sistema che scrive la lista di utenti connessi, senza database!! Utilizzato dei file txt, creandone uno per ogni utente che si connette, ogni file contiene un numero(time), ogni utente aggiorna ad ogni refresh della pagina il suo file txt, scrivendovi il time() attuale. Ad ogni refresh, inoltre, l'utente controlla tutti i file degli altri utenti, se il numero presente in essi ha una differenza di oltre 20 secondi dal time() attuale, il file viene cancellato, e l'utente possessore di quel file scompare dalla lista degli utenti connessi.Posto il codice nel caso qualcuno sia interessato.
    Codice PHP:
    <?php
    session_start
    ();
    function 
    connessi($directory FALSE)
    {
    $var=fopen("connessione/".$_SESSION['username'].".txt","w");//il file relativo all'utente coinnesso viene"riempito" con il time() atuale, se il fike non esiste viene creato
    $var2=fwrite($var,time());

    if (
    $handle opendir("./" $directory))//estraggo tutti i file e le cartelle dalla directory che mi interessa
    {
    while (
    $file readdir($handle))
    {
    if (
    is_dir("./{$directory}/{$file}"))
    {
    if (
    $file != "." $file != ".."$dirs[] = $file;
    }
    else
    {
    if (
    $file != "." $file != ".."$files[] = $file;
    }
    }
    }
    closedir($handle);
    echo
    "[b]utenti connessi:[/b]";
    while(list(
    $key$value) = each($files))
    {
    $ext=explode(".",$value);//inserisco in un array nome e estensione del file
    if($ext[1]=="txt"){//prendo in considerazione solo file con estensione txt
    $var=fopen("connessione/".$value,"r");//apro il file
    $var2=fread($var,20);//leggo il file
    if(time()-$var2>20)//verifico che l'utente abbia aggirnato il proprio file nei precedenti 20 secondi
    unlink("connessione/".$value);//in caso contrario elimino il file
    echo $ext[0].", ";//scrivo il nome del file senza estensione, quindi l'username dell'utente
    }
    }
    }

    connessi("/connessione/");//cartella che contiene i file txt
    ?>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.