secondo me l'echo del form devi scriverlo così:

Codice PHP:
echo ("<form id='login' action=\"{$_SERVER['PHP_SELF']}\" method='post'>"); 
poi se ci son altri errori oltre a questo chiedi

PS cmq se io fossi in te e dovessi usare per forza un file testuale per salvare password ed utenti lo strutturerei così:

<?
utente01|pass_criptata_01
utente02|pass_criptata_02
utente03|pass_criptata_03
utente04|pass_criptata_04
utente05|pass_criptata_05
utente06|pass_criptata_06
?>

e lo salvere .php e non txt, in modo che se uno tenta di aprirlo con browser non vede nulla.
noltre ti faciliteresti la lettura perchè potresti utilizzare la fuznioen file
es

Codice PHP:
$dati file('password.php');
$utlima count($dati);
foreach(
$dati as $k => $v)
{
  if( (
$k!=0) && ($k!=$utlima) )
  {
     
$info explode('|',$v)
     
$username $info[0];
     
$pass $info[1];
     
//POI QUI ESEGUI IL CONTROLLO PER VEDERE SE I DATI CORRISPONDONO.
  
}