Originariamente inviato da }gu|do[z]{®©
hum.. macchinoso...
è l'unico sistema ?
in questa se vai in fondo vedi come ho gestito l'flock.

vero quello che dice Fabio sulla w ma il file fantoccio secondo me e' superfluo.


In pratica:
Codice PHP:
// vecchio numero di utenti
$utenti file_get_contents('contatore.txt');

// apro e locko il file
$fp fopen('contatore.txt''w');
@
flock($fpLOCK_EX); // @ perche' in win non va

// scrivo il nuovo numero
fwrite($fp, ++$utenti);

// slocko e chiudo il file
@flock($fpLOCK_UN);
fclose($fp); 

aggiungi magari un if((int)$utenti >= 1) prima dell' apertura in w e vai tranquillo che al massimo perdi una passata, ma non il contenuto



[edit]
ok, faccio esempio
codice:
$contatore = 'contatore.txt';		// file
$utenti = file_get_contents($contatore);// leggo
if((int)$utenti >= 1) {			// non e' gia' aperto ?
	$fp = fopen($contatore, 'w');	// apro e cancello
	@flock($fp, LOCK_EX);		// locko
	fwrite($fp, ++$utenti);		// scrivo
	@flock($fp, LOCK_UN);		// slocko
	fclose($fp);			// chiudo
}


[ edit2 la vendetta ]
codice:
// funzione ricorsiva, al massimo aspetta ...
function contatore($contatore) {
	if(($utenti = (int)file_get_contents($contatore)) >= 1) {	
		$fp = fopen($contatore, 'w');
		@flock($fp, LOCK_EX);
		fwrite($fp, ++$utenti);
		@flock($fp, LOCK_UN);
		fclose($fp);
	}
	else
		$utenti = contatore($contatore);
	return $utenti;
}