Visualizzazione risultati 1 fino 11 di 11

Discussione: [PHP] Utenti online (con sessioni) - Cancellare scritte

  1. #1
    Angelworld non è connesso Neofita
    Data registrazione
    20-03-2005
    Messaggi
    8

    Predefinito [PHP] Utenti online (con sessioni) - Cancellare scritte

    Mi servirebbe una funzione che mostri gli utenti online in quel momento. Mi spiego meglio. Un utente fa il login che apre una sessione con il nome utente da una lista di variabili:
    $utenti["utente1"] = "password1";
    $utenti["utente2"] = "password2";
    $utenti["utente3"] = "password3";


    Vorrei un modo per sapere, se per esempio sono presenti utente1 e utente2 (che hanno aperto quindi quelle due sessioni sul loro computer), quando sono presenti su una determinata pagina.
    Quindi vorrei che appaia una lista di utenti presenti che poi si dovrebbe anche aggiornare.

    Un'altra cosa :P
    Io so come scrivere qualcosa con il PHP (con echo), ma come faccio a cancellarlo?? In pratica vorrei qualcosa che cancelli una scritta o alla peggio qualcosa che cancelli una pagina.

    Grazie :D

  2. #2
    Ospite Guest

    Predefinito

    Per lo script degli utenti online, non è mica così semplice.
    Io posso fornirti lo script di base per visualizzare gli utenti online (magari gli ip), ma per la posizione è un'pò più complesso perchè ad ogni pagina visitata devi aggiornare nel database la posizione corrispondente all'utente online.
    Per il cancellare una scritta, non ho capito cosa intendi.
    Per eliminare un file esiste la funzione unlink().

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per la cancellazione temo che si riferisse a un ipotetico inverso dell'echo()... ti posso rassicurare che non può esistere una funzione del genere, per due motivi: il primo è che una volta inviati in stampa i dati (con le echo appunto) non sono più modificabili. Il secondo è che se avessi più occorrenze della sottostringa da cancellare, quale elimineresti?

    Puoi "rimediare" (ma si tratta di un palliativo) nel modo seguente: invece di stampare subito il codice, lo salvi in una variabile. Poi con delle opportune funzioni, tipo str_replace(), puoi cancellare le occorrenze del testo che desideri eliminare dal codice provvisorio. Una volta ottenuto il codice definitivo, lo stampi con echo().

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Angelworld non è connesso Neofita
    Data registrazione
    20-03-2005
    Messaggi
    8

    Predefinito

    No, no, con "su una determinata pagina" intendevo solo gli utenti presenti in una pagina, per capirci intendo gli utenti presenti in una chat. Non devono essere ordinati. Basta che ci sia una lista di utenti. Possibilmente senza l'utilizzo di un database perché non ci so fare e per ora non mi serve (dato che il sito sarà per poche persone).

    Per la seconda richiesta intendo cancellare qualunque dato all'interno del file senza cancellare il file stesso. Vorrei che rimanesse il file ma vuoto.

    EDIT
    Stavo rispondendo a probid :D
    Ultima modifica di Angelworld : 30-08-2007 alle ore 23.56.09

  5. #5
    Ospite Guest

    Predefinito

    Per cancellare tutto il contenuto del file fai così:
    Codice PHP:
    <?
    fwrite
    (fopen("file.txt","w+"),"");
    ?>
    Per scrivere la lista degli utenti online:
    Possibilmente senza l'utilizzo di un database
    E'impossibile.
    Devi necessariamente usare mysql o files di testo.
    Ti faccio uno scriptino per usare il file db.txt per memorizzare gli utenti online:

    EDIT: Vedi al post 10.

  6. #6
    Angelworld non è connesso Neofita
    Data registrazione
    20-03-2005
    Messaggi
    8

    Predefinito

    Grazie per l'aiuto ma sembra non funzionare.
    Da quest'errore:
    Parse error: syntax error, unexpected T_AS in /membri2/angelworld/prova/Chat/Online.php on line 10

    La riga 10 è questa:
    foreach(file("db.txt" as $nline=>$line)){


    Premetto che ho creato il file db e ho fatto prima il login per creare una sessione.

  7. #7
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da Angelworld Visualizza messaggio
    La riga 10 è questa:
    foreach(file("db.txt" as $nline=>$line)){
    dove hai preso quello script?
    Nel mio quella riga non c'è

  8. #8
    Angelworld non è connesso Neofita
    Data registrazione
    20-03-2005
    Messaggi
    8

    Predefinito

    Non so. Devo averlo preso prima che tu lo modificassi. Comunque ora da un'altro errore:

    Parse error: syntax error, unexpected T_VARIABLE in /membri2/angelworld/prova/Chat/Online.php on line 9

    A questa riga:
    Codice PHP:
    $lines[$nline]=NULL;

  9. #9
    Angelworld non è connesso Neofita
    Data registrazione
    20-03-2005
    Messaggi
    8

    Predefinito

    Sì funziona ma non del tutto (almeno sembra).
    Mostra soltanto un utente, quello che guarda quella pagina dal suo PC
    Il mio amico vedeva "utenti connessi Claudio (suo nome)".
    Io vedevo "utenti connessi Io" quando invece eravamo connessi tutti e due.

  10. #10
    Ospite Guest

    Predefinito

    Si infatti :)
    Questo funziona, ne sono sicuro :D perchè l'ho provato :) :

    Codice PHP:
    <?
    $_SESSION
    ['user']="Matteo"; // nome utente connesso
    $secondi=60; // secondi per la scadenza della sessione
    $connessi=array();
    $lines=file("db.txt");
    foreach(
    $lines as $nline=>$line){
    $p=explode("|",$line);
    $nome=$p['0'];
    $timestamp=$p['1'];
    $connessi[]=$nome;
    if(
    $nome==$_SESSION['user'])
    {
    if(
    time()>($timestamp+$secondi))
    $lines[$nline]=null;
    }
    }

    $lines=join($lines);

    if(!
    in_array($_SESSION['user'],$connessi)){
    $lines.=$_SESSION['user']."|".time()."\n";
    }


    fwrite(fopen("db.txt","w+"),$lines);

    echo
    "Utenti connessi: "."<br /><br />";
    $file=file("db.txt");
    foreach(
    $file as $user){
    $p=explode("|",$user);
    echo
    $p['0']."<br />";
    }

    ?>

  11. #11
    Angelworld non è connesso Neofita
    Data registrazione
    20-03-2005
    Messaggi
    8

    Predefinito

    Ok, grazie funziona ^^

Regole di scrittura

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