Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    lettura file testo e formattazione dati

    Ciao,
    ho fatto questo script per la gestione del log di alcune operazioni relative all'amministrazione di un sito.
    Lo script mi permettere di annotare in un file di testo gli ingressi le query utilizzate ecc...

    script in scrittura:
    Codice PHP:
    function write_log_utente($user,$ip,$azione)
    {
        if (!
    is_dir("log"))
            
    mkdir("log",0777);
        if (!
    is_dir("log/utenti"))
            
    mkdir("log/utenti",0777);
        
    $file "log/utenti/".$user.".txt";
        
    $m=fopen($file,"a");
        
    fwrite($mdate("d-m-Y  H:i:s")."/t".$user."/t".$ip."/t".$azione."/n");
        
    fclose($m);

    il file che mi si presenta è così composto:

    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 ingresso
    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 query
    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 logout
    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 ingresso
    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 lettura news
    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 logout
    dd-mm-aaaa hh:mm:ss email@agkfsakskda.it 198.122.12.1 ingresso
    ...

    la funzione che uso per leggere questo file è la seguente

    Codice PHP:
    function read_log_utente($user)
    {
    $percorso "../log/utenti/".$user.".txt";
    $var=fopen($percorso,"r");
    $leggi=fread($var,filesize($percorso));
    $sss=nl2br($leggi);
    fclose($var);
        if (
    $sss!=""){
               return 
    $sss;
        }
        else {
            
    $sss="Log Vuoto";
            return 
    $sss;
        }

    E' a questo punto che mi servirebbe una mano:
    Come faccio a questo punto andare a legegre il file ed estrapolarmi i dati e formattarli in modo da poterli inserire in una tabella ??

    Ho pensato di poter efftuare questa operazione con un doppio explode mettendolo in un ciclo for, in modo da tabulare all'interno di un doppio array i dati, del tipo...
    primo array composto da tutte le parti di ogni riga array_1=[(data, email, ip, azione),(data, email, ip, azione),(data, email, ip, azione),...]
    explode("",array_1)

    chi sa come implementare questa cosa che ho pesnato?? è possibile effettuarla?? o mi consigliate un metodo migliore?

    E' importante effettuare una buona lettura in modo che poi...devo dare la possibilità all'amministratore..di poter effettuare una ricerca dei vari log a seconda delle operazioni compiute...orario e ip utilizzato.

    Grazie a tutti per l'interessamento

  2. #2
    Perche hai bisogno di un file di log?

    Le info di log non le potresti gestire a db con una tabella log? cosi i dati te li formatti come vuoi e in piu hai il vantaggio di poter selezionare solo parte di dati e di organizzarteli come vuoi (es se hai 2000000 mila accessi in scrittura su una tabella avrai 2000000 mila righe di un file magari invece te ne interessavano solo 10 ovvero quello di oggi alle 10.25 o robe simili?).

    Se proprio vuoi un file casomai puoi implementarti una funzione che legge i dati a db e te li splitta in un file che salvi con un certo nome e te lo formatti come vuoi tu.

    (magari dai una occhiata in giro se non c'e' gia' qualche classe che puoi riutilizzare)
    Erebigal

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    Sicuramente...hai ragione, il problema è che mi è stato prorpio chiesto di poter aver un file di testo,, cmq..si può sempre fare..effettivamente caricando prima nel db...e successivamente andandoa scrivere e memorizzare in un file quello che mi serve sapere e solamente quello che voglio (...soprattutto)
    mhhhh...mi hai dato un'ottima idea..
    per caso magari conosci anche qualche script gia compilato per la gestione di un log?
    ...intendo con relativa parte amministrativa...e form di ricerca dati ecc...?? non che sia difficile..ma giusto per abbreviare i tempi. grazie per l'interessamento!

    ciao

  4. #4
    Ciao,

    allora tool specifici non ne conosco...io ho programmato sempre la parte di amministrazione sempre a seconda dei miei bisogni specifici...credo dipenda molto da che tabelle vuoi tenere sotto controllo.

    Per conto mio io come log salvo sempre tutte le volte che un utente prova a loggarsi e le sessioni che genera...cosi riesco piu' o meno a sapere quanto rimane collegato o se ci sono dei tentativi di loggarsi non autorizzati. Poi il log lo faccio sulle tabelle importanti e di solito solo per azioni di modifica (inserimenti, cancellazioni o update).

    Mi spiace di non riuscire ad essere piu' specifico.

    saludos

    E.
    Erebigal

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    si si, anche io... loggo tutti ingressi e logout...
    ingressi forzati... e ingressi casuali..con user e pass random..
    controllo ip e inserisco la query che viene effettuata per tenere trraccia delle ricerca che vanno per la maggiore... ecc... per quanto riguarda il pannello amministrativo dle log..nonf accio altro che inserire la possibilità di eliminare i log + vecchi di una certa data che immetto in modo da tenere sempre libero il db... in oltre la possibilità di gestire il log per ogni singolo utente registrato! se mi viene in mente altro ti faccio sapere! Ciao e grazie .

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.