guarda.. ti ho cambiato la struttura del file, in questa maniera mi sembra piu leggibile e comprensibile... e dovrebbe funzionare

Codice PHP:
<?
$username 
$_POST["username"];

$textfile=file("utenti.txt");
$numrighe count($textfile)-1// qui ho il numero di righe  già presenti nel file

$registered =;
foreach (
$textfile as $line)
  {
  list (
$user,
        
$password,
        
$nome,
        
$cognome,
        
$indirizzo,
        
$civico,
        
$citta,
        
$provincia,
        
$telefono,
        
$cellulare,
        
$email) = explode ("|",$line);
  
  
  if (
$user == trim($username)) 
    {
    
$registered 1;
    break;
    }
  }


if (
$registered == 1)  // se è registrato
  
{
  echo 
"Devi inserire una user differente, questa è già presente.

      Torna alla pagina di registrazione, clicca <a href=registrazione.php>qui</a>"
;
  die();
  }
else
  {
  
$new_line=array();
  
$idriga $numrighe;
  
  
$new_line['user'] = $_POST["username"];
  
$new_line['password'] = $_POST["password"];

  
$new_line['nome'] = $_POST["nome"];
  
$new_line['cognome'] = $_POST["cognome"];
  
$new_line['indirizzo'] = $_POST["indirizzo"];
  
$new_line['civico'] = $_POST["civico"];
  
$new_line['citta'] = $_POST["citta"];
  
$new_line['provincia'] = $_POST["prov"];
  
$new_line['telefono'] = $_POST["telefono"];
  
$new_line['cellulare'] = $_POST["cellulare"];
  
$new_line['email'] = $_POST["email"];

  
$datiform implode ("|",$new_line);
  
  
$db_file fopen("utenti.txt""a+") or die ("impossibile scrivere sul db");
  
fwrite($db_file$datiform);
  
fclose($db_file);
  
  echo 
"Registrazione effettuata con successo
"
;
  echo 
"Clicca <a href=login.php>qui</a> per andare alla pagina di login";
  }
?>