comunque il codice e troppo complesso onestamente quindi ne ho fatto una versione a livello primitivo il codice e questo
<html>
<body>
<?php

$testo=fopen("prova.txt","r");
$nuovo=fopen("nuovo.txt","a");
$nome=fgets($testo);
$newname=$_POST["nome"];
$new=$newname;
fwrite($nuovo,$new);
fclose($testo);fclose($nuovo);
unlink("prova.txt");
rename("nuovo.txt","prova.txt");
?>
<form method="post">
<input type="text" name="nome" value="<?=$new?>"required>
<input type="submit" name="ok" value="ok">

</form>
</body>
</html>

nel file di testo ce scritto solo "matteo"
risultato?
Cattura.JPG
ho provato anche con i consigli che mi avete dato mettendo le funzioni isset ,sostituendo i valori dei form con le variabili $_POST[], ho definito anche la variabile ma nulla
aiutatemi vi prego
e poi come al solito mi elimina il testo all interno del file
a me serve solo che quando avvio il programma mi visualizza il nome presente nel file di testo e poi lo posso modificare