Ma restituisce un errore (errore php!) o semplicemente ti stampa "utente già registrato"?
Codice PHP:
<?php
$riga = "caio";
$open=fopen("utenti.txt");
$file=file($open);
for($i=0;$i<count($file);$i++) {
$file[$i] = explode("|",trim($file[$i]));
echo "
" . $file[$i][0] . " == $riga " . (($file[$i][0]=="$riga") ? "Si" : "No" );
if ($file[$i][0]=="$riga")
{
echo "utente già registrato";
}
else
{
echo "resto dello script";
}
fclose($fp);
?>
Intanto con questa aggiunta ti stampa tutta la lista. Così ti guardi per quale valore non torna il confronto, e cerchi di capire il perché.
Poi....
1) Non hai chiuso la graffa del 'for'.
2) Hai un " di troppo nel confronto tra valore del primo campo e $riga.
Ciao