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

    Volevo sistemare un pochino questo file...

    ho questo file da modificare un po:
    Codice PHP:
    <html>
    <head>
    <title>Persone online</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#E7E9FA">
    <?
    include("config.php");

    $ar_online=file($file_online);
    $dim=count($ar_online);

    for (
    $i=0;$i<$dim;$i++)
    {
    $ut_online=chop($ar_online[$i]);
    $utente=explode("|",$ut_online);
    $nick_ut=$utente[0];
    $data=$utente[1];
    $orario=$utente[2];

    $parti_data=explode("/",$data);
    $giorno=$parti_data[0];
    $mese=$parti_data[1];
    $anno=$parti_data[2];

    $parti_orario=explode(":",$orario);
    $ora=$parti_orario[0];
    $minuti=$parti_orario[1];
    $secondi=$parti_orario[2];

    $ts=mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
    $diff=time()-$ts;
    $min_trascorsi=$diff/60;

    if (
    $min_trascorsi<$min_online
    {
    $array_on[]=$nick_ut;
    }
    }
    $ar_unico=array_unique($array_on);
    $dim_unico=count($ar_unico);

    echo 
    "<font face=\"Verdana\" size=\"1\">Online: ";
    for(
    $i=0;$i<count$array_on);$i++)
    {
    echo 
    $array_on[$i]. ", ";
    }
    ?>

    </body>
    </html>
    praticamente il suo funzionamento consiste nel mettere a video gli utenti che sono online, solo che si basa sull'invio dei messaggi, quindi se io invio due messaggi ravvicinati invece di comparire una volta mi fa comparire due volte, e in più vorrei che non si basasse solo sui messaggi inviati ma che non so facesse riferimento all'ip. grazie per chi mi aiuta.

  2. #2

  3. #3
    Originariamente inviato da filippo.toso
    Ti consiglio di iniziare leggendo il manuale ufficiale:

    http://www.php.net/array_unique
    magari sapessi il php non sarei qui a chiedere queste cose...

    a primo impatto giustamente anche io capisco che si tratta della funzione che fa al mio caso però poi più di la non ci capisco più nulla, se qualcuno mi spiega ben venga, grazie.

  4. #4
    nessuna idea, o spunto su come fare?

  5. #5
    se tu ti salvassi il timestamp di quando manda il messaggio potresti poi fare un controllo su quanti secondi son passati, esempio mostri l'utente come online se sono passati meno di 5 o 10 minuti

  6. #6
    Originariamente inviato da goikiu
    se tu ti salvassi il timestamp di quando manda il messaggio potresti poi fare un controllo su quanti secondi son passati, esempio mostri l'utente come online se sono passati meno di 5 o 10 minuti
    e come devo fare per realizzare quello che mi dici? mi spieghi? grazie!

  7. #7
    o_O nel database che utilizzi o file che sia devi salvarti il timestamp pure

    http://it.php.net/manual/it/function.time.php

    poi prendi l'ora attuale del server con la stessa funzione, fai una sottrazione e se il risultato è inferiore al numero di secondi di 5 minuti (5*60=300) allora lo mostri a video, altrimenti fa niente.

  8. #8
    Originariamente inviato da goikiu
    o_O nel database che utilizzi o file che sia devi salvarti il timestamp pure

    http://it.php.net/manual/it/function.time.php

    poi prendi l'ora attuale del server con la stessa funzione, fai una sottrazione e se il risultato è inferiore al numero di secondi di 5 minuti (5*60=300) allora lo mostri a video, altrimenti fa niente.
    magari riuscissi a farlo, così come dirlo, tu non potresti passarmi il codice? come ripeto php non lo conosco

  9. #9
    in teoria dovrei se non sbaglio agire su questo pezzo di codice, però non so come salvare com dici tu

    Codice PHP:
    $ts=mktime($ora,$minuti,$secondi,$mese,$giorno,$anno); 
    $diff=time()-$ts
    $min_trascorsi=$diff/60

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.