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

    counter senza db ma solo per determinati user

    ciao a tutti,
    avrei la necessità di creare un counter (senza ausilio di db) che mi segnali quante volte un determinato utente si logga ad un'area privata.

    praticamente ho una pagina privata con due user che possono entrare e avrei la necessità di contare quante volte l'utente1 si collega (non l'utente2) e visualizzare la info solo se è loggato l'utente2 dalla pagina comune (main.php).

    ho provato diversi script, ma nessuno va bene, inoltre non sono attendibili perché con il refresh della pagina aumentano le visite...

    avete qualche suggerimento?

    grazie
    -------
    babs

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    8
    senza usare db io creerei un file con il nome dell'utente che si logga e l'istante di log.

    // acquisisco l'istante espresso in secondi dal 1 gennaio 1970 (unix epoch)*/
    $istante = time();

    //acquisisco il login dell'utente
    $login = $_POST['login'];


    //se il file con il nome uguale al login non esiste lo creo scrivendo ad esempio 1,1261440000
    //dove 1 e il contatore e 1261440000 sono i secondi passati dal 1 gennaio 1970.
    if(!file_exists($login))
    {
    file_put_contents($login,"1," . $istante);
    }
    else
    // se il file esiste
    {
    // lo leggo
    $buffer = file_get_contents($login);
    // lo scompongo in 2 parole
    $parola = split(",", $buffer);
    // la prima parola è il contatore quindi la incremento di uno
    $parola[0] = $parola[0] + 1;

    /*
    la seconda parola è l'istante del login precedente a questo, se l'istante è maggiore di 180 secondi (3 minuti) rispetto all'ultimo login considero sia un nuovo login altrimenti è un refresh. qui il sistema è un po' empirico ma giocando sul numero di minuti puoi ottimizzarlo
    */
    if( $istante + (60 * 3) > $parola[1])
    {
    //se è un nuovo login aggiorno il file
    file_put_contents($login, $parola[0] . "," . $istante);
    }
    }


    lo script non l'ho provato, spero ti vada bene, se non funziona fammi sapere ciao.

  3. #3
    grazie mille, ho capito più o meno il concetto, ma avrei una domanda: invece di far creare un file, non si possono scrivere le info su un txt per esempio?
    perché non ho capito se poi crea n file e comunque non ho capito come consultare le informazioni.

    perdonami, ma non sono praticissima.
    -------
    babs

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    8
    1)scusa ma un txt è un file :-)

    se vuoi l'estensione txt basta che ad esempio sostituisci

    file_put_contents($login,"1," . $istante);

    con

    file_put_contents($login . ".txt","1," . $istante);

    2)
    lo script crea un file per ogni utente

    ciao

  5. #5
    comunque ho provato il tuo codice, ma mi da errore qui

    file_put_contents($login,"1," . $istante);

    Call to undefined function: file_put_contents()
    -------
    babs

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    8
    vuol dire che non stai usando php5

    prova a sostituire quell'istruzione con questa sequenza, ma ti consiglio di passare a php5

    $fp = fopen($login,"w");
    fwrite($fp, "1," . $istante);
    fclose($fp);

  7. #7
    grazie per la pazienza.

    ora va in parte
    Warning: fwrite(): supplied argument is not a valid
    Warning: fclose(): supplied argument is not a valid
    -------
    babs

  8. #8
    leggendo un po' sembra un problema di permessi, ma avendo aruba non posso fare molto...
    -------
    babs

  9. #9
    Originariamente inviato da graphbabs
    leggendo un po' sembra un problema di permessi, ma avendo aruba non posso fare molto...
    ma stai operando su file che si trovano nella cartella public? in aruba è l'unica con i permessi attivi
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    no, comunque non vedo la cartella pubblic... comunque ho provato con uno script di quelli semplici e scriveva sul file di testo dopo avergli assegnato i permessi.
    -------
    babs

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.