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

    un sistema che conta i post

    Ciao a tutti

    ho creato suna sorta guestbook e gli ho aggiunto un sistema che conta gli interventi fatti, però non sono molto soddisfatto di come l'ho fatto:

    Ho creato un fiule interventi.php che contiene la sola variabile $interventi e nel php che aggiunge l'intervento ho fatto così:

    $file = fopen("private/interventi.php","r+");
    $interv = fread($file, filesize("private/interventi.php"));
    fclose($file);
    $file = fopen("private/interventi.php","w");
    $interventi2 = $interventi + 1;
    $interv = eregi_replace("$interventi","$interventi2",$interv );
    flock($file,2);
    fputs($file,"
    $interv
    ");
    flock($file,3);
    fclose($file);

    In poche parole leggo il file e poi lo sovrascrivo facendo una eregi_replace sul numero, però mi sembra un modo molto rozzo per contare gli interventi, come dovrei fare?

    In oltre ad ogni sovrascrizione mi aggiunge uno /n sul file interventi.php, come mai?

    Grazie
    Valerio

  2. #2

  3. #3
    perchè ho un dominio gratuito senza database

  4. #4
    Studiati questo codice:

    Codice PHP:
    <?php 

    define
    ('COUNTER_FILE'dirname(__FILE__) . '/interventi.php');

    function 
    conta_interventi($filename COUNTER_FILE) {
        include(
    $filename);
        
    $count = isset($interventi) ? $interventi 0;
        return 
    $count;
    }

    function 
    aggiorna_interventi($filename COUNTER_FILE) {
        
    $count conta_interventi() + 1;
        
    $content "<"."?php \$interventi = $count; ?".">";
        
    file_put_contents($filename$content);
    }

    $count conta_interventi();
    echo(
    $count);
    aggiorna_interventi();

    ?>
    E' un codice d'esempio che non tiene conto di eventuali problemi di locking/accesso concorrente.

  5. #5
    La file_put_contents era proprio quello che ci voleva, ho risolto il tutto in due righe grazie.

    $interventi = $interventi + 1;
    file_put_contents("private/interventi.php", "<"."?php \$interventi = $interventi; ?".">");

    Ciao
    Valerio

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.