Su un hosting ho posizionato uno script che scrive su diversi file .txt le visite che riceve il sito. A causa della lunghezza non posso esporvi interamente il programma. Il problema risiede però in questo pezzo che vi posto qui di seguito.
Codice PHP:
        if (file_exists $ipUnici )) {
            
$current file_get_contents $ipUnici );
            
$current2 $current $ip_address " | " $now "     \r\n";
            if (
strpos $current$ip_address ) === false) {
                
file_put_contents $ipUnici$current2LOCK_EX );
            }
        } else {
            
$current $ip_address " | " $now "     \r\n";
            
file_put_contents $ipUnici$currentLOCK_EX );
            
//codice aggiunto per verificare bug in questo punto del codice
            //pare che lo script ogni tanto cancelli il file ipUnici.txt
            //ma non si riescono a comprendere le ragioni            
            
$init $now " : Inizializzazione file!     \r\n";
            
file_put_contents $ipUnici.".txt"$initFILE_APPEND LOCK_EX );
            
//se accanto ad ipUnici.txt compare ipUnici.txt.txt allora
            //risulta possibile che questa parte del codice presenti delle problematiche
        

Lo script funziona in questo modo:
Se il file $ipUnici esiste aggiungi ad esso l’IP $ip_address solo se unico diversamente crea $ipUnici e mettici dentro $ip_address senza verificarne l’unicità.
Il file $ipUnici è di questo tipo:
68.180.231.62 | 2016-07-18 05:00:40am
66.249.65.52 | 2016-07-18 09:51:43pm

157.55.39.210 | 2016-07-20 08:58:38pm
115.28.43.234 | 2016-07-20 09:47:40pm

157.55.39.37 | 2016-09-06 12:03:55pm
La cosa strana è che il programma funziona, in questo momento lo sto testando con degli amici e lo script non fa una grinza. Il bug risiede nell’affidabilità. Vedete la prima riga?
68.180.231.62 | 2016-07-18 05:00:40am
Secondo a quanto vi ho detto la data dovrebbe coincidere con l’apertura del sito ma non è così. Infatti ogni tanto (1 volta all’anno o una volta ogni 6 mesi) il file $ipUnici si svuota senza che questa riga di PHP venga letta:
Codice PHP:
$init $now " : Inizializzazione file!     \r\n"
In pratica ogni tanto le visite uniche totali ritornano a zero. Ma come è possibile? C’è forse un limite alla dimensione di queste variabili? Non so più cosa pensare… Un inchino a chi saprà risolvere il problema…
ciao