Visualizzazione risultati 1 fino 20 di 20

Discussione: Apparire online nel proprio sito

  1. #1
    Guest

    Predefinito Apparire online nel proprio sito

    Sto cercando un codice da mettere nella home, che quando sono online la scritta "Sono online" mentre se non ci sono appare "Non ci sono".

    Dove lo trovo il codice?

  2. #2
    Guest

    Predefinito

    Se vuoi usare il php, puoi fare una cosa del genere:

    1. Crei una tabella nel database in cui registrare anche solo questo dato:
    ultima_pagina

    2. In ogni pagina del sito controlli l'indirizzo ip, se è uguale al tuo aggiorni il database mettendo con un timestamp il risultato nel database (che aggiorni quindi per ogni pagina che apri)

    3. Per far comparire la scritta metti come condizione if:
    - se il timestamp attuale è maggiore di 5 minuti (300sec) al timestamp registrato sul database fai un echo 'Non online', mentre se il timestamp attuale è a meno di 5 min di distanza ti segni online..

    Poi vedi tu dopo quanto tempo dall'ultima pagina caricata vuoi risultare online..
    Ah, naturalmente le pagine in formato .php

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da multigame Visualizza messaggio
    Se vuoi usare il php, puoi fare una cosa del genere:

    1. Crei una tabella nel database in cui registrare anche solo questo dato:
    ultima_pagina

    2. In ogni pagina del sito controlli l'indirizzo ip, se è uguale al tuo aggiorni il database mettendo con un timestamp il risultato nel database (che aggiorni quindi per ogni pagina che apri)

    3. Per far comparire la scritta metti come condizione if:
    - se il timestamp attuale è maggiore di 5 minuti (300sec) al timestamp registrato sul database fai un echo 'Non online', mentre se il timestamp attuale è a meno di 5 min di distanza ti segni online..

    Poi vedi tu dopo quanto tempo dall'ultima pagina caricata vuoi risultare online..
    Ah, naturalmente le pagine in formato .php
    La home è in php, io non ho il DB, mi serve un codice pronto da piazzare nella home.

  4. #4
    Guest

    Predefinito

    Appunto, se la funzione che ti serve è solo questa, puoi attivare il database di classe 1 mi pare, comunque quello piu basso che è gratuito e dovrebbe andare sempre..

    Se poi non vuoi utilizzare un database, anche un file di testo txt, ma qualche posto dove registrare il tuo passaggio è indispensabile..

    Per il resto la logica resta la stessa se non hai un sistema di login, prendi un informazione unica (o anche piu) che corrispondono al tuo pc/linea o quello che vuoi, e lo metti tra le condizioni in ogni pagina, e registri da qualche parte data e ora dell'ultima pagina caricata.

    Codice subito allora ti conviene cercare per la rete.

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da multigame Visualizza messaggio
    Appunto, se la funzione che ti serve è solo questa, puoi attivare il database di classe 1 mi pare, comunque quello piu basso che è gratuito e dovrebbe andare sempre..

    Se poi non vuoi utilizzare un database, anche un file di testo txt, ma qualche posto dove registrare il tuo passaggio è indispensabile..

    Per il resto la logica resta la stessa se non hai un sistema di login, prendi un informazione unica (o anche piu) che corrispondono al tuo pc/linea o quello che vuoi, e lo metti tra le condizioni in ogni pagina, e registri da qualche parte data e ora dell'ultima pagina caricata.

    Codice subito allora ti conviene cercare per la rete.
    C'è l'ho già un file txt, lo uso per registrare automaticamente i messaggi del guestbook

  6. #6
    Guest

    Predefinito

    Puoi sfruttare lo stesso comando che usi per il guestbook allora..
    Per aprire e scrivere un'altro file txt da usare per vedere se sei online.

    Ora, nel guestbook ci scrive immagino le info sull'utente che ha postato e il messaggio.

    In questo file invece devi inserire solo il tempo dell'ultima apertura di una pagina qualsiasi del tuo sito. Qui trovi info su come avere il dato: http://php.html.it/articoli/leggi/92...come-gestirle/

    Con il time() ottieni un numero in secondi, registri solo questo nel file.


    Quindi nel punto in cui vuoi far apparire la scritta, leggi il file txt (così come dov'è situato il guestbook viene letto il file relativo), piu o meno in questo modo:

    Codice PHP:
    $tempo_attuale = time();
    $differenza = $tempo_ultima_pagina - $tempo_attuale;

    //300 = 300secondi = 5minuti.. puoi cambiarlo come vuoi
    if($differenza > 300){echo 'Non sono online';}
    else{echo
    'Sono online'}
    il tuo ip lo ricavi da qualsiasi sito che te lo fa vedere, tipo www.mio-ip.it

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da multigame Visualizza messaggio
    Puoi sfruttare lo stesso comando che usi per il guestbook allora..
    Per aprire e scrivere un'altro file txt da usare per vedere se sei online.

    Ora, nel guestbook ci scrive immagino le info sull'utente che ha postato e il messaggio.

    In questo file invece devi inserire solo il tempo dell'ultima apertura di una pagina qualsiasi del tuo sito. Qui trovi info su come avere il dato: http://php.html.it/articoli/leggi/92...come-gestirle/

    Con il time() ottieni un numero in secondi, registri solo questo nel file.


    Quindi nel punto in cui vuoi far apparire la scritta, leggi il file txt (così come dov'è situato il guestbook viene letto il file relativo), piu o meno in questo modo:

    Codice PHP:
    $tempo_attuale = time();
    $differenza = $tempo_ultima_pagina - $tempo_attuale;

    //300 = 300secondi = 5minuti.. puoi cambiarlo come vuoi
    if($differenza > 300){echo 'Non sono online';}
    else{echo
    'Sono online'}
    il tuo ip lo ricavi da qualsiasi sito che te lo fa vedere, tipo www.mio-ip.it
    Ma è proprio necessario avere un file che stampa i dati?
    Col Guestbook mi serve perchè è una procedura un pò particolare: un file.php stampa i dati sul server in message.html, un secondo file.php li prende da lì e li mette a video.

    Ho già un codice che visualizza l'ip del visitatore, guarda in alto a dx nel mio sito
    Ultima modifica di alemoppo : 13-07-2011 alle ore 02.23.21 Motivo: Aggiunta finale +eliminato link

  8. #8
    Guest

    Predefinito

    Ok, quell'ip che prelevi ti è utile per auto-riconoscerti.

    in ogni pagina devi mettere

    Codice PHP:
    $tuo_ip = 'xxxx'; //lo conosci, mettilo qui
    //Ora prelevi l'ip di chi sta visitando la pagina, quello che hai già
    $ip_attuale = bla bla come sopra;

    if(
    $tuo_ip = $ip_attuale){
    //apri il file txt dedicato a sto fatto :P
    //cancelli tutto il contenuto
    //scrivi dentro ciò che ottieni con time()
    }
    Avere un file è necessario se non vuoi utilizzare il database.
    Non capisco perché però non vuoi usare il database, se è solo per questo scopo ti basta il primo livello, gratuito, e per il codice posso aiutarti poco di piu, e guadagni in sicurezza anche se non ci sono info da proteggere

    Vedi tu, comunque ora la logica dovresti averla compresa, il codice in parte è qua, il resto non l'ho messo perché è sicuramente uguale a quello del guestbook, naturalmente da adattare, e devi utilizzare un'altro file..

  9. #9
    Guest

    Predefinito

    Il mio IP è dinamico.

    Ho messo questo ma a 70 cambia frase

    Codice PHP:
    <?php
    $tempo_attuale
    = time();
    $differenza = $ip=$_SERVER['REMOTE_ADDR'];

    //300 = 300secondi = 5minuti.. puoi cambiarlo come vuoi
    if($differenza > 70) {echo 'Non sono online';}
    else {echo
    'Sono online';}
    ?>

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da photoman Visualizza messaggio
    Il mio IP è dinamico.

    Ho messo questo ma a 70 cambia frase

    Codice PHP:
    <?php
    $tempo_attuale
    = time();
    $differenza = $ip=$_SERVER['REMOTE_ADDR'];

    //300 = 300secondi = 5minuti.. puoi cambiarlo come vuoi
    if($differenza > 70) {echo 'Non sono online';}
    else {echo
    'Sono online';}
    ?>
    Le variabili nello script non sono impostate bene..
    $tempo_attuale è ok

    ma $differenza deve essere
    $differenza = $tempo attuale - $tempo_ultima_pagina

    dove $tempo_ultima_pagina è il valore che dovresti prelevare dal file txt..
    così come l'hai postato sottrai al tempo attuale l'ip, non avrebbe senso.

    Per l'ip controlla se cambia del tutto in ogni parte, o se cambiano solo le ultime cifre.. Se son solo le ultime cifre si può utilizzare..
    LA sconvenienza è che se ti connetti da altrove non ti segna online.


    L'alternativa sarebbe fare una pagina di accesso, dove metti una password che scegli tu, e se esatta con le sessioni ti fai riconoscere connettendoti da qualsiasi posto. Sarebbe la scelta migliore per prestazioni, il database rimane ancora l'accoppiamento migliore, perché ora c'è anche una password di mezzo, anche se tanto l'accesso di altri non porta a chissà quali danni, ma solo al funzionamento dello script per online/offline.

    Vedi tu cosa scegliere..

  11. #11
    Guest

    Predefinito

    Se ho ben capito, per essere sicuro che segna giusto anche se mi connetto altrove, devo mettere la pwd, e qui inizia a complicarsi.
    Io lo terrei sul semplice, non metto niente e basta

  12. #12
    Guest

    Predefinito

    Be, per l'utilità che può avere è sicuramente un dettaglio trascurabile, se non vuoi altri file e codice in giro togli e fai prima, in caso cambi idea siam qua :P

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da multigame Visualizza messaggio
    Be, per l'utilità che può avere è sicuramente un dettaglio trascurabile, se non vuoi altri file e codice in giro togli e fai prima, in caso cambi idea siam qua :P
    Mi era venuta l'idea vedendo Facebook che aggiorna automaticamente la lucina senza aggiornare la pag.
    Va bè, lasciamo così, grazie di tutto

  14. #14
    Guest

    Predefinito

    Quello è un altro grande passo in più.. si arriva ad AJAX, fosse già un sistema con accesso utenti potrebbe avere il suo perché, non ce non si possa fare anche per una cosa del genere, però se non è indispensabile meglio non perderci su troppo tempo.

    Alla prossima!

  15. #15
    Guest

    Predefinito

    Pensavo a quel link che mi hai dato che verifica l'ip, non capisco come faccia a sapere se una mail è giusta, esiste un database mondiale di indirizzi?

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Di che link parli? Cosa centrano le email? Per la cronaca, l'IP si preleva senza servizi esterni: tramite
    Codice PHP:
    $_SERVER['REMOTE_ADDR']
    Comunque, personalmente, ritengo che la scelta di verificare l'ip è brutta. Molto meglio usare sessioni o cookie.

    Ciao!

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Di che link parli? Cosa centrano le email? Per la cronaca, l'IP si preleva senza servizi esterni: tramite
    Codice PHP:
    $_SERVER['REMOTE_ADDR']
    Comunque, personalmente, ritengo che la scelta di verificare l'ip è brutta. Molto meglio usare sessioni o cookie.

    Ciao!
    Era multigame, mi ha postato questo http://www.mio-ip.it/ è qui che non capisco il ciclo delle mail corrette o no.

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Citazione Originalmente inviato da multigame Visualizza messaggio
    il tuo ip lo ricavi da qualsiasi sito che te lo fa vedere, tipo www.mio-ip.it
    Ancora non capisco cosa centrino le email.


    ---


    Ritornando al tuo problema, come ho detto prima, guardare l'IP non è una cosa molto efficace. Sia perché cel'hai dinamico, sia perché se ti connetti da un'altra parte non appari online, sia perché qualsiasi altra persona (fratello, parente) che si connette con la tua connessione ti renderà online.

    L'unica soluzione sensata che mi viene in mente è quella di fare un sistema login-password. Anche se con solo una password (salvata sul sorgente) le cose non si complicano molto, comunque devi in ogni caso fare il form...

    Una soluzione non bella ma (credo) funzionale, sarebbe quella di fare una pagina che conosci soltanto te. Quando ti connetti a quella pagina, la pagina aggiornerà in un file di testo il timestamp corrente.

    Mi spiego meglio:

    Potresti fare una pagina del tipo:

    Codice PHP:
    <?php
    session_start
    ();
    $password = 'pippo'; //è un esempio
    if(isset($_GET['password']))
    if(
    $_GET['password'] == $password)
    {
    $_SESSION['admin'] = 1;
    file_put_contents('ultima_azione.txt', time()); //aggiorni nel file il timestamp
    }
    header('Location: index.php'); //redirect alla home
    ?>
    L'indiirzzo di questa pagina la conosci soltanto te (non la scrivi/dici a nessuno). Quindi, se ad esempio si chiama pagina.php e la password è pippo, accedi con:

    Codice:
    tuosito.altervista.org/pagina.php?password=pippo
    In questo modo, si setterà la sessione e il timestamp sul file.

    Poi, in tutte le pagine, dovresti aggiornare il timestamp nel file, ovvero inserire in tutte le pagine (all'inizio), queste righe:

    Codice PHP:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['admin']))
    file_put_contents('ultima_azione.txt', time()); //aggiorni la tua ultima azione nel file il timestamp
    ?>
    Per mostrare se sei online, puoi scrivere:

    Codice PHP:
    <?php
    if((time() - file_get_contents('ultima_azione.txt')) > 300) //se per 300 secondi non hai fatto niente
    echo 'Non ci sono';
    else
    'Ci sono';
    ?>

    ---

    Nota: non ho provato gli script sopra e ovviamente puoi personalizzarli come vuoi; è soltanto per fare un esempio

    Ciao!
    Ultima modifica di alemoppo : 13-07-2011 alle ore 13.17.10

  19. #19
    Guest

    Predefinito

    Nel caso utilizzi la soluzione che ti ha spiegato alemoppo, se ci aggiungi anche una pagina per fare logout quando stai chiudendo il sito sarebbe ancora meglio..

    Per una pagina di logout ti basta mettere questa riga:

    Codice PHP:
    <?php
    session_destroy
    ();
    echo
    'Ora non risulti online';
    ?>
    E volendo per facilitare il logout puoi aggiungere in un punto della pagina che tu preferisci una cosa del genere:

    Codice PHP:
    <?php
    if(isset($_SESSION['admin'])) {
    echo
    '<a href="logout.php">Disconnessione</a>'
    }
    ?>
    Così da far comparire un link solo se sei loggato come amministratore, per uscire commodamente (senza mettere tu il nome della pagina, che può anche essere differente)


    Ah comunque non ho capito neanche io il fatto della mail, ti ho indicato quel sito solo perché non ero certo sapessi come avere il tuo ip.

    Bye!
    Ultima modifica di multigame : 13-07-2011 alle ore 16.24.01

  20. #20
    Guest

    Predefinito Spiegazione mail

    In quel sito oltre al''ip address, geo, c'è anche la casella che tu inserisci un indirizzo mail e il sito verifica se quell'indirizzo esiste o no.
    Come fa a saperlo? Esiste un DB? Se così mi farebbe comodo avere un codice del genere che verifica se i miei visitatori inseriscono mail vere

Regole di scrittura

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