Originariamente inviato da spoon25
mi pare ovvio ... 151 != 152

e poi ad ogni modo il tuo controllo per ottenere "libero" non potrà mai funzionare:
substr($_SERVER['REMOTE_ADDR'],0,2) == '151' sarà sempre false perché il tuo substr restituisce solo i primi due numeri dell'IP che sarà dunque SEMPRE diverso da 151.

Altrimenti nel tuo codice dovresti spostare la parte dove apri, scrivi, chiudi il file dopo il if(){}elseif(){}else{} così al posto di scriverla 3 volta la metti una sola.

Oltre a questo devo dire che questo metodo lo trovo meno affidabile di quello che ti han dato in un altra discussione quando ti si diceva di parsare il risultato di gethostbyaddr($_SERVER['REMOTE_ADDR']);
Ovviamente ho sbagliato a scrivere l'ip che visualizzo è 151 così come nella variabile;
il metodo che dici gethostbyaddr($_SERVER['REMOTE_ADDR']);proprio non ho capito come usarlo;
poi, ho capito che l'errore è nel substrato (2 invece di tre) allora basta che cambi ($_SERVER['REMOTE_ADDR'],0,2) con ($_SERVER['REMOTE_ADDR'],0,2)???
l'altra cosa che non ho capito e dove devo spostare la scrittura del file :master: :master:

Grazie mille x un'eventuale chiarimento!