Visualizzazione risultati 1 fino 22 di 22

Discussione: mostrare nome degli User online

  1. #1
    Guest

    Predefinito mostrare nome degli User online

    Salve a tutti! questa dovrebbe essere una nuova discussione xkè nn ho trovato nulla a riguardo: in sostanza io nel mio sito sto usando questo script

    http://forum.it.altervista.org/how/5...ramite-ip.html

    per contare gli user online,volevo sapere se c'era un modo per modificarlo in modo ke visualizzi oltre al numero anche i nomi di ki è online,avevo pensato di sfruttare il login ke uso sul mio sito ma nn so proprio come modificare quello script in modo ke visualizzi anche i nomi degli user
    Qualche idea?
    P.S:nel mio sito uso il secondo script(quello semplificato) per contare gli user

  2. #2
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    E lo script che usi per il login?


    -- Aut Roma Aut Nihil!

  3. #3
    Guest

    Predefinito

    Questo è lo script ke compare nella prima pagina del sito,se il login va a buon fine,compare l'homepage altrimenti ci sono degli errori:

    Codice PHP:
    <?
    $username
    = "gbtchiaravalle";
    $password = "password";
    $host = "localhost";
    $database = "my_gbtchiaravalle";

    $db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
    mysql_select_db($database, $db) or die("Errore durante la selezione del database");
    if(isset(
    $_COOKIE['ID_my_site']))

    {
    $username = $_COOKIE['ID_my_site'];
    $pass = $_COOKIE['Key_my_site'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while(
    $info = mysql_fetch_array( $check ))
    {
    if (
    $pass != $info['password'])
    {
    }
    else
    {
    header("Location: homepage.php");

    }
    }
    }

    if (isset(
    $_POST['submit'])) {

    if(!
    $_POST['username'] | !$_POST['pass']) {
    die(
    '<div align=center><font color=red>Devi inserire username e password!</font></div>');
    }

    if (!
    get_magic_quotes_gpc()) {
    $_POST['email'] = addslashes($_POST['email']);
    }
    $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

    $check2 = mysql_num_rows($check);
    if (
    $check2 == 0) {
    die(
    '<div align=center><font color=red>Questo user non esiste!</font></div>
    <a href=registration.php>Clicca qui per registrarti!</a>'
    );
    }
    while(
    $info = mysql_fetch_array( $check ))
    {
    $_POST['pass'] = stripslashes($_POST['pass']);
    $info['password'] = stripslashes($info['password']);

    if (
    $_POST['pass'] != $info['password']) {
    die(
    '<div align=center><font color=red>Password errata, riprova!</font></div>
    <a href=login.php>Riprova il login!</a>'
    );
    }
    else
    {

    $_POST['username'] = stripslashes($_POST['username']);
    $hour = time() + 3600;
    setcookie(ID_my_site, $_POST['username'], $hour);
    setcookie(Key_my_site, $_POST['pass'], $hour);

    header("Location: homepage.php");
    }
    }
    }
    else
    {

    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
    <table>
    <div align=center span class="Stile1">Inserisci username e password e clicca su login!</span></div>
    <div align=center><table border="0">
    <tr><td>Username:</td><td>
    <input type="text" name="username" maxlength="60">
    </td></tr>
    <tr><td>Password:</td><td>
    <input type="password" name="pass" maxlength="50">
    </td></tr>
    <tr><th colspan=2>
    <input type="submit" name="submit" value="Login">
    </th></tr></table></form>
    <?php
    }
    ?>

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Dovresti salvare in una tabella quando un utente fa il login e quando visita una pagina da loggato. Poi puoi estrarre gli utenti degli ultimi cinque minuti per calcolare gli utenti online collegati.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    funcool grazie per avermi risposto,ma nn sono poi così pratico,nn è ke potresti farmi un esempio a grandi linee?
    magari anche a parole: se l'utente è collegato fai questo,etc etc
    grazie tante!

  6. #6
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Praticamente quando fa il login salvi il suo nome in un file con associato il tempo dell'ultima azione.
    Ogni volta fai un controllo su questo file ed elimini gli utenti che non hanno eseguito azioni prima di (chessò) 5 minuti.

    Vuoi il codice, vero?

  7. #7
    Guest

    Predefinito

    asp la prima parte mi è chiara e cmq potrei usare il database usando la funzione curdate(),è la seconda ke nn mi è molto kiara,un esempio del codice della seconda parte farebbe comodo

  8. #8
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Bene :=D

    Facciamo finta che il file dove salvi gli utenti registrati correntemente online si chiami reg_online.txt e che questo file sia così strutturato:
    NOME UTENTE|TEMPO
    Dove nome utente è il nome dell'utente e tempo è il tempo aggiornato ogni volta che fa un'azione.

    Codice PHP:
    <?php
    function aggiorno($utente) //funzione di aggiornamento
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $ex[0] == $utente)
    {
    $w[] = $ex[0]."|".(time()+300); //tempo attuale + 300 secondi (5 minuti)
    $a = 1;
    }
    else
    {
    $w[] = $riga;
    }
    }
    if(!
    $a) //se l'utente non è presente tra quelli online [ può succedere :P ]
    $w[] = $utente."|".(time()+300);

    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }

    function
    ch_online() //funzione di controllo
    {
    $file = file("reg_online.txt");
    $tempo = time();
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $tempo > $ex[1])
    {
    $w[] = "";
    }
    else
    {
    $w[] = $riga;
    }
    }
    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }
    ?>
    Praticamente queste due funzioni le usi in tutte le pagine che gli utenti registrati possono visitare ed esse segneranno ogni loro movimento [no, in verità guardano se l'utente in 5 minuti ha fatto qualcosa ].
    Vuoi il codice per vedere CHI è online?

    Ma eccolo qua!

    Codice PHP:
    <?php
    function vedi()
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    $w[] = $ex[1];
    }
    $w = implode("<br />", $w);
    return
    "Utenti registrati collegati al sito:<p>".$w."</p>";
    }
    ?>
    Esempio di pagina di utente:

    Codice PHP:
    <?php
    //dichiarazione delle tre funzioni...

    aggiorno($_SESSION["Utente"]);
    ch_online();

    echo
    vedi();

    ?>
    Non sono sicuro, ma dovrebbe funzionare
    Ultima modifica di Leo91 : 11-02-2008 alle ore 19.11.31

  9. #9
    Guest

    Predefinito

    ciao,forse ho sbagliato a fare qualcosa
    in pratica io ho messo tutti e tre gli script ke mi hai dato tu in una pagina sola,ci ho aggiunto il codice per vedere se un utente ha fatto il login o no,e ho cambiato $utente in $username dove $username = $_COOKIE['ID_my_site'](ho fatto questo per selezionare il nome dell'utente); però mi sà ke nn deve essere fatto così!
    Ti rigrnazio molto per gli script ke hai creato,ma se puoi dirmi gentilmente come sfruttarli te ne sarei ancora più grato!
    Ultima modifica di gbtchiaravalle : 12-02-2008 alle ore 21.07.58

  10. #10
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Mmm...allora..praticamente hai scritto così?
    Codice PHP:
    <?php
    //blablabla

    aggiorno($_COOKIE["ID_my_site"]);
    ch_online();

    echo
    vedi();

    //blablabla
    ?>
    SE hai scritto così: dovrebbe funzionare (salvo qualche mio errore ).

    Posta pure l'intero codice

    Ciao!

  11. #11
    Guest

    Predefinito

    no avemo messo in un altro modo,cmq modificando come hai scritto tu adesso mi vengono fuori tutti numeri e affianco il nome utente adesso posto tutto il codice:
    Codice PHP:
    <?
    $username
    = "gbtchiaravalle";
    $password = "password";
    $host = "localhost";
    $database = "my_gbtchiaravalle";

    $db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
    mysql_select_db($database, $db) or die("Errore durante la selezione del database");
    if(isset(
    $_COOKIE['ID_my_site']))
    {
    $username = $_COOKIE['ID_my_site'];
    $pass = $_COOKIE['Key_my_site'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while(
    $info = mysql_fetch_array( $check ))
    {

    if (
    $pass != $info['password'])
    {
    header("Location: login.php");
    }

    else
    {
    }
    }
    }
    else

    {
    header("Location: login.php");
    }
    $username = $_COOKIE['ID_my_site'];
    function
    aggiorno($username) //funzione di aggiornamento
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $ex[0] == $username)
    {
    $w[] = $ex[0]."|".(time()+300); //tempo attuale + 300 secondi (5 minuti)
    $a = 1;
    }
    else
    {
    $w[] = $riga;
    }
    }
    if(!
    $a) //se l'utente non è presente tra quelli online [ può succedere :P ]
    $w[] = $username."|".(time()+300);

    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }

    function
    ch_online() //funzione di controllo
    {
    $file = file("reg_online.txt");
    $tempo = time();
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $tempo > $ex[1])
    {
    $w[] = "";
    }
    else
    {
    $w[] = $riga;
    }
    }
    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }
    ?>
    <?php
    function vedi()
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    $w[] = $ex[1];
    }
    $w = implode("<br />", $w);
    return
    "Utenti registrati collegati al sito:<p>".$w."</p>";
    }
    ?>
    <?php
    //dichiarazione delle tre funzioni...

    aggiorno($_COOKIE["ID_my_site"]);
    ch_online();

    echo
    vedi();

    ?>

  12. #12
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Codice PHP:
    <?php

    function aggiorno($username) //funzione di aggiornamento
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $ex[0] == $username)
    {
    $w[] = $ex[0]."|".(time()+300); //tempo attuale + 300 secondi (5 minuti)
    $a = 1;
    }
    else
    {
    $w[] = $riga;
    }
    }
    if(!
    $a) //se l'utente non è presente tra quelli online [ può succedere :P ]
    $w[] = $username."|".(time()+300);

    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }

    function
    ch_online() //funzione di controllo
    {
    $file = file("reg_online.txt");
    $tempo = time();
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $tempo > $ex[1])
    {
    $w[] = "";
    }
    else
    {
    $w[] = $riga;
    }
    }
    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }

    function
    vedi()
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    $w[] = $ex[0];
    }
    $w = implode("<br />", $w);
    return
    "Utenti registrati collegati al sito:<p>".$w."</p>";
    }
    $username = "gbtchiaravalle";
    $password = "password";
    $host = "localhost";
    $database = "my_gbtchiaravalle";

    $db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
    mysql_select_db($database, $db) or die("Errore durante la selezione del database");
    if(isset(
    $_COOKIE['ID_my_site']))
    {
    $username = $_COOKIE['ID_my_site'];
    $pass = $_COOKIE['Key_my_site'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while(
    $info = mysql_fetch_array( $check ))
    {

    if (
    $pass != $info['password'])
    {
    header("Location: login.php");
    }
    $ut = $_COOKIE['ID_my_site'];


    aggiorno($ut);
    ch_online();

    echo
    vedi();

    ?>
    Ora è più corretto, ma non so se sia del tutto corretto

  13. #13
    Guest

    Predefinito

    dovrebbe ma nn è così!

    Parse error: syntax error, unexpected $end in /membri/gbtchiaravalle/username_online.php on line 88

    ho dato una rapida occhiata ma adesso avendo fretta di andare nn sono riuscito a trovare l'errore!

  14. #14
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Citazione Originalmente inviato da gbtchiaravalle Visualizza messaggio
    dovrebbe ma nn è così!

    Parse error: syntax error, unexpected $end in /membri/gbtchiaravalle/username_online.php on line 88

    ho dato una rapida occhiata ma adesso avendo fretta di andare nn sono riuscito a trovare l'errore!
    Scusa, riguardando il codice ho lasciato un tuo ciclo aperto.


    Codice PHP:
    <?php

    function aggiorno($username) //funzione di aggiornamento
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $ex[0] == $username)
    {
    $w[] = $ex[0]."|".(time()+300); //tempo attuale + 300 secondi (5 minuti)
    $a = 1;
    }
    else
    {
    $w[] = $riga;
    }
    }
    if(!
    $a) //se l'utente non è presente tra quelli online [ può succedere :P ]
    $w[] = $username."|".(time()+300);

    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }

    function
    ch_online() //funzione di controllo
    {
    $file = file("reg_online.txt");
    $tempo = time();
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    if(
    $tempo > $ex[1])
    {
    $w[] = "";
    }
    else
    {
    $w[] = $riga;
    }
    }
    $ok = implode("", $w);
    $fp = fopen("reg_online.txt", "w+");
    fwrite($fp, $ok);
    fclose($fp);
    }

    function
    vedi()
    {
    $file = file("reg_online.txt");
    foreach(
    $file as $riga)
    {
    $ex = explode("|", $riga);
    $w[] = $ex[0];
    }
    $w = implode("<br />", $w);
    return
    "Utenti registrati collegati al sito:<p>".$w."</p>";
    }
    $username = "gbtchiaravalle";
    $password = "password";
    $host = "localhost";
    $database = "my_gbtchiaravalle";

    $db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
    mysql_select_db($database, $db) or die("Errore durante la selezione del database");
    if(isset(
    $_COOKIE['ID_my_site']))
    {
    $username = $_COOKIE['ID_my_site'];
    $pass = $_COOKIE['Key_my_site'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while(
    $info = mysql_fetch_array( $check ))
    {

    if (
    $pass != $info['password'])
    {
    header("Location: login.php");
    }
    }
    $ut = $_COOKIE['ID_my_site'];


    aggiorno($ut);
    ch_online();

    echo
    vedi();

    ?>
    Niente errori, teoricamente!

  15. #15
    Guest

    Predefinito

    mi dava sempre lo stesso errore così a fine script ho aggiunto questo:
    <?
    }
    ?>
    l'errore poi nn è comparso più però apredo la pagina nn compare nulla!

  16. #16
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Dopo l'elenco delle funzioni, prova a modificare così:
    Codice PHP:
    $username = "gbtchiaravalle";
    $password = "password";
    $host = "localhost";
    $database = "my_gbtchiaravalle";

    $db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
    mysql_select_db($database, $db) or die("Errore durante la selezione del database");
    if(isset(
    $_COOKIE['ID_my_site'])) {
    $username = $_COOKIE['ID_my_site'];
    $pass = $_COOKIE['Key_my_site'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while(
    $info = mysql_fetch_array( $check ))
    if (
    $pass != $info['password'])
    header("Location: login.php");
    }

    $ut = $_COOKIE['ID_my_site'];

    aggiorno($ut);
    ch_online();

    echo
    vedi();
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  17. #17
    Guest

    Predefinito

    nn funziona nemmeno così,compare solo la scritta:"Utenti registrati collegati al sito:" e nient'altro!

  18. #18
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Dentro al file "reg_online.txt" cosa c'è scritto?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  19. #19
    Guest

    Predefinito

    credo ke ci sia il mio ip e basta xkè quando lo apro compaiono dei numeri,una barra e altri numeri e basta

  20. #20
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Potresti fare un copia e incolla?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  21. #21
    Guest

    Predefinito

    si certo ecco:
    prova|1202989103

    mi sono accorto solo adesso ke aggiornando la pagina compare il mio nome ke è appunto prova,quindi in teoria funziona,giusto?

  22. #22
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Citazione Originalmente inviato da gbtchiaravalle Visualizza messaggio
    si certo ecco:
    prova|1202989103

    mi sono accorto solo adesso ke aggiornando la pagina compare il mio nome ke è appunto prova,quindi in teoria funziona,giusto?
    Pare.

    Però per esserne certo fai così: apri IE e ti logghi. Apri Firefox e ti logghi con altro nome (Firefox come Opera o quello che vuoi).

    Oppure ti metti d'accordo con qualcuno e fate il login in quello stretto arco di tempo...così avrai la prova della sua funzionalità.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •