Eccomi quà,
scusami il ritardo ma ho avuto davvero un casino di cose da fare in questi giorni

.
Piuttosto che lavorare sul tuo codice, ho preferito farne di nuovo, in modo che poi tu possa adattarlo alle tue esigenze, non pretendo che ti risolva completamente il problema, ci saranno di sicuro degli aggiustamenti da fare, ma quello che ti metto di seguito funziona correttamente e fa quello che ti serve.
Questo è il codice della pagina con il form, credo non ci sia nulla da spiegare, la pagina l'ho chiamata
index.htm:
codice:
<html>
<head>
<title>Inserisci i dati</title>
</head>
<body>
Compila il form sottostante ed inserisci tutti i dati:<br><br>
<form name="Form" action="scrivi.php" method="post">
Nome:<br>
<input name="nome" type="text" value="Nome"><br>
Cognome:<br>
<input name="cognome" type="text" value="Cognome"> <br>
Via:<br>
<input name="via" type="text" value="Via"><br>
citta':<br>
<input name="citta" type="citta" value="Citta'"><br> <br>
<input type="submit" value="Invia i dati"> <br><br>
</form>
</body>
</html>
Adesso il codice della pagina che scrive il file html, quì per comodità ho inserito una textarea che ti fa controllare il codice che poi verrà scritto sul file. la pagina devi chiamarla
scrivi.php codice:
<html>
<head>
<title>Scrivi il file e mostralo</title>
</head>
<body>
Questo file scrive l'html in un altro file con un suo nome e lo mostra<br><br>
<?php
echo" <b>Nome: </b>$nome<br><br>" ;
echo" <b>Cognome: </b>$cognome<br><br>" ;
echo" <b>Via: </b>$via<br><br>" ;
echo" <b>Città: </b>$citta<br><br>" ;
echo" <b>ecco i dati inseriti</b><br><br>";
//adesso creo la variabile che andrò a scrivere sul file html
$html="
<html> \n
<head> \n
<title>Scrivi il file e mostralo</title> \n
</head> \n
<body> \n
<p> adesso metti tutto il testo che vuoi ed i tag html, oltre ad inserire le \n
variabili che hai preso dal form </p> \n
<br>il tuo nome e':<br>\n
<b>$nome</b> <br><br> \n
il tuo cognome è :<br> \n
<b>$cognome</b><br><br> \n
abiti in via:<br> \n
<b>$via</b><br><br> \n
nella citta' di:<br> \n
<b>$citta</b> <br><br> \n
</body>\n
</html>\n" ;
echo"<textarea rows=15 cols=50 >$html</textarea>";
//questo invece è il codice che scrive il file
$file = "esempio.htm";
$connect = @fopen($file, "a");
fputs($connect, $html, "4096");
fclose($connect);
?>
</body>
</html> Nota che alla fine di ogni riga che andrai a scrivere sul file ho inserito
\n questo perchè altrimenti il php tii scriverebbe tutto di seguito su uno stesso rigo, e non è proprio il massimo della formattazione, il file che viene salvato si chiama esempio.htm e viene salvato nella stessa directory in cui risiede scrivi.php ma puoi cambiare il nome e la directory indicando il percoso che vuoi tu.
Provalo e poi vediamo dove e come aggiustarlo per le tue esigenze specifiche